博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU1574 RP问题
阅读量:5174 次
发布时间:2019-06-13

本文共 1175 字,大约阅读时间需要 3 分钟。

题目大意:

如果a>0并且当前rp值大于或等于b时,才有可能发生

如果a<0并且当前rp值小于或等于b是,才有可能发生

事件有可能不发生,有可能发生

分析:

以第三组数据为例:

3

-5 0 4

10 -5 -5

-5 5 10

初始化:

rp数组

INF

INF

……

……

INF

0

INF

……

……

INF

0       1                                 l=r=10000;                       20005

第一事件发生:

因为a<0;所以b+10000r之间都有可能发生,用for循环2

rp数组

INF

INF

……

4

……

0

INF

INF

……

INF

0       1                l=l+a=9995;      r=10000;       

 

第二事件发生:

因为a>0,所以在b+10000l之间都有可能发生,用for循环1

rp数组

   

……

-1

……

0

……

INF

……

 

                        l=9995           10000            r=r+a=10010

 

第三事件发生:

因为a<0;所以b+10000r之间都有可能发生,用for循环2

rp数组

 

 

INF

……

9

……

0

……

INF

   

        l=l+a=99990       9995            10000          r=10010

在用for循环3找出最大值9;    

代码:

#include<iostream>

using namespace std;

#define INF -999999999

#define size 20005

int rp[size];

int main()

{

int n,t,i,x,a,b,c;

int l,r;

cin>>t;

while(t--)

{

for(i=0;i<size;i++)

rp[i]=INF;

l=r=10000;

rp[l]=0;

 

cin>>n;

while(n--)

{

cin>>a>>b>>c;

if(a>0)

{

for(i=b+10000;i>=l;i--) //…………………………………………  1

{

if(rp[i]!=INF)

{

x=rp[i]+c;

rp[i+a]=rp[i+a]>x?rp[i+a]:x;

}

r+=a;

}

}

else

{

for(i=b+10000;i<=r;i++) //………………………………………  2

{

if(rp[i]!=INF)

{

x=rp[i]+c;

rp[i+a]=rp[i+a]>x?rp[i+a]:x;

}

}

l+=a;

}

}

int max=INF;

for(i=l;i<=r;i++){ //…………………………………………………… 3

if(rp[i]>max) max=rp[i];

}

cout<<max<<endl;

}

return 0;

}

转载于:https://www.cnblogs.com/wuyanjun/archive/2013/05/19/3086972.html

你可能感兴趣的文章
Hibernate一对多关联
查看>>
python 把函数作为参数 ---高阶函数
查看>>
jQuery + ashx 实现图片按比例预览、异步上传及显示
查看>>
android 代码中使用textAppearance
查看>>
【iOS】UITableViewDelegate 方法没有调用
查看>>
解决code::blocks 17.12不能debug的方法
查看>>
bzoj2961&&bzoj4140 共点圆
查看>>
96:经典实例,判断那一条是闰年:
查看>>
upsource初探
查看>>
让SVN自动更新代码注释中的版本号
查看>>
java中base64
查看>>
常用的mysql操作命令
查看>>
Unity3D的菜单及编辑器扩展
查看>>
我是如何拿到蚂蚁金服 offer 的 ?
查看>>
Android Volley 的基本使用/设置HTTP请求参数、apikey
查看>>
Hibernate框架
查看>>
Vim编辑器的使用总结
查看>>
ArcGIS REST 缓存清除(地图空白不显示的问题 )
查看>>
第0次作业
查看>>
"类" 库添加继承
查看>>