B-station解题报告(枚举+堆).doc

试题翻译

SGU148B-Station

试题描述

在离著名的国家Berland不远的地方,有一个水下工作站。这个工作站有N层。已知:是第i层装有Wi的水,最多可以容纳Li的水,恐怖分子炸毁第i层的代价是Pi。第i层一旦被炸毁,该层所有的水都将倾泻到第i+1层。如果某一层的水量超过了它的容量(即Li),那么该层就将自动被毁坏,所有的水也会倾泻到下一层。

Pivland的恐怖分子想要用最少的钱毁掉第N层,现在他雇佣你来计算,需要炸毁哪些层。

输入

第一行有一个自然数N(1=n=15000)。接下来的N行,每行3个整数Wi,Li,Pi(0=Wi,Li,Pi=15000)。

输出

输出需要炸毁的层的编号。

样例

Input

3

100010001

010002

210100

Output

1

2

解题报告

B-Station解题报告

【题意分析】

令Si=W1+W2+…+Wi(特别的S0=0)。

不妨设恐怖分子炸毁的第高层是第p层(第一层是最高层,第N层是最底层)。

因为恐怖分子的目标是毁灭第N层,所以水必须从第p层一直泻下去。如果存在一个i,满足Wp+Wp+1+…+Wi-1+Wi=Li,也就是说前面几层的水全部泄下来也无法把第i层自动冲毁,那么就必须要使用炸药把它炸开了。

所以恐怖分子需要炸毁的层的集合就是Bomb[p]={p}∪{i|ipSi-Sp

文档评论(0)

1亿VIP精品文档

相关文档