试题翻译
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)