hdu 1574 RP问题 DP

来源:互联网 发布:人工智能的英文介绍 编辑:程序博客网 时间:2024/04/30 02:32

 

问题描述:有N件连续的事件,有些事件是RP值增加a,获益值减少c。有些则相反。每件事件还有一个RP门槛bRP值增加的事件RP>=RP门槛,RP值减少的事件则得RP<=RP门槛。满足上述条件不一定就会发生。其中N<= 1000 ,a<=10,b<=10000,c<=10000;求这些事件的最大获益值, 事件发生的顺序按照输入先后顺序先后发生,也就是说不可能先发生第i行的事件,然后再发生i j行的事件。开始RP和获益值都为0

 

算法:是DP题。一件事件发生与否只和当前RP有关,所以想到存储到达某个事件是各个RP的最大获益。不能开二维的数组(数据太大),只能开一个dp[20001];dp[j]表示RPj - 10000;  另外还要一个标记数组,标记是否可以出现这个RP值;

 

 

 

原创粉丝点击