问题如下,求思路与代码
小L翻出来小W领地的地图,打算使用导弹摧毁小W的城市。由于你是小W的军师,你不想看到城市被毁灭,所以你打算建一个能量发生器,提供能量盾。
你把能量罩架好之后,从小W的武器库里发现了一个导弹拦截武器。为了测试这个武器是否管用,你打算用它去拦截一部分的导弹,减少能量盾的负荷。
经过尝试,你发现:它拦截的后一颗导弹必定比前一颗高,也就是说,每当你的武器拦截了编号为i的导弹,你下一次可以拦截的导弹高度Aj必须高于或等于这枚导弹的高度Ai。不过,这个武器的好处在于,它可以拦截太阳系外飞来的导弹,即对导弹的高度没有限制。
这天,面对小L的导弹时,你拿出了这个拦截武器。你发现,由于导弹型号的不同,你的武器拦截这枚导弹所需的代价也不同。你的武器耐久为T,每当你的武器拦截了编号为i的导弹,你的武器都会失去拦截这枚导弹所需的代价Pi。如果你的武器拦截了某一颗导弹后耐久不为正,那么你的武器就需要送去维修,无法拦截接下来V发导弹。当你的武器维修好后,它的耐久度恢复为T,且初始可以拦截任意高度的导弹,不过仍然不能拦截比前一发高度低的导弹。
现在敌方有n枚导弹袭来,编号为i的导弹高度为Ai,拦截这枚导弹所需代价为Pi。求能量盾至少需要承受多少枚导弹的攻击。
第一行,三个由空格分开的整数n,T,V,含义如上;
接下来n行,每行两个由空格分开的整数Ai,Pi,含义如上。
一个整数,代表能量盾最少需要承受的导弹数。
8 6 3
1 4
2 1
3 2
4 1
5 5
6 3
7 2
8 1
3
可以拦截第1、2、3、7、8号导弹,能量盾需要承受3颗导弹。
| 测试点编号: | n≤: | Ai≤: | Pi≤: | T≤: | V≤: |
|---|---|---|---|---|---|
| 1 | 10 | 100 | 10 | 10 | 0 |
| 2 | 10 | 103 | 10 | 10 | 0 |
| 3 | 10 | 104 | 10 | 100 | 0 |
| 4 | 100 | 106 | 103 | 104 | 1 |
| 5 | 100 | 103 | 10 | 100 | 10 |
| 6 | 103 | 104 | 100 | 104 | 10 |
| 7 | 104 | 106 | 103 | 104 | 100 |
| 8 | 104 | 107 | 103 | 104 | 100 |
| 9 | 105 | 108 | 103 | 106 | 104 |
| 10 | 105 | 108 | 104 | 107 | 104 |