C++基础辅导(线段树学习)
来源:优易学  2011-10-25 10:20:57   【优易学:中国教育考试门户网】   资料下载   IT书店

  一个线段树的题,POI2000 的Promotion,一开始建了一个[1,1000000]的线段树,结果超内存后来hash了一下,优化了一下结构,但是wrong answer了,最后把所有的int改为了__int64,终于AC了
  题目
  Description
  Great Bytelandish net of supermarkets asked you for writing a program simulating costs of the promotion being prepared.
  The promotion has to obey the following rules:
  1.A customer, who wants to participate in the promotion, writes on the bill, paid by himself, his personal details and throws it to a special ballot box.
  2.At the end of every day of the promotion, two bills are taken out from the ballot box:
  *** the first bill amounting to the greatest sum is chosen,
  *** then the bill amounting to the least sum is chosen;
  The customer, who has paid the greatest bill, gets a money prize equal to the difference between the sum on his bill and the sum on the bill amounting to the least sum.
  3.To avoid multiple prizes for one purchase, both bills selected accordingly to the above rules, do not return to the ballot box, but all remaining bills still participate in promotion.
  Turnovers of the supermarket are very big, thus an assumption can be made, that at the end of every day, before taking out bills amounting to the greatest and the least sum, there are at least 2 bills in the ballot box.
  Your task is to compute on the basis of information about prices on bills thrown to the ballot box on each day of promotion, what will be the total cost of prizes during the whole promotion.
  Task
  Write a program, which:
  1.reads a list of prices on bills thrown to the ballot box on each day of the promotion,
  2.computes the total cost of prizes paid in consecutive days of promotion,
  3.writes the result.
  Input
  The first line contains one positive integer n, where 1 <= n <= 5000, which is the duration of promotion in days.
  Each of the next n lines consists of a sequence of nonnegative integers separated by single spaces. Numbers in the (i+1)th line of the file represent prices on bills thrown to the ballot box on the ith day of promotion. The first integer in the line is k, 0 <= k <= 10^5, the number of bills from the day, and the next k numbers are positive integers standing for the prices on bills; none of these numbers is greater than 10^6.
  The total number of bills thrown to the ballot box during the whole promotion does not exceed 10^6.
  Output
  The out should contain exactly one integer, which is equal to the total cost of prizes paid during the whole promotion.
  Sample Input
  5
  3 1 2 3
  2 1 1
  4 10 5 5 1
  0
  1 2
  Sample Output
  19

[1] [2] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训