SOJ 2505: The County Fair
来源:互联网 发布:网络设计师卡通图片 编辑:程序博客网 时间:2024/06/11 18:37
刚刚发现我这个博客里怎么写的全部都是图论类的题解啊。。。。就算是网络流和二分图也是一种特殊的图论嘛= 。=
其实这不怪我啊。。。
还不是因为前一阵子被超哥吐槽说训练强度太低。。。
我也不知道在他眼中我到底做啥题才能算是提高训练强度了 =。=
于是就狂刷了一阵子网络流和线段树。。
然后我觉得线段树这种数据结构的题还不是考对代码的统筹能力,又没啥好写的= =
于是翻翻solution就全是网络流啊撒鼻息。。。
换换口味,写道DP吧。。。
顺便又可以给我的博客加个分类了嘿嘿嘿。。
题目链接:http://cstest.scu.edu.cn/soj/problem.action?id=2505
题目大意:有一些村庄,各个村庄间有一些长短不一的道路,每个村庄都有一个办法奖励的时间Pi。一个人从村庄1开始游历。但是有一个特殊的规则:他每到达一个村庄,都必须在那里获得一个奖励,否则他不肯动身去这个村庄(这个条件太坑爹啊)。
算法:
就是个普通的生成类DP,初始化很重要
因为只有从村庄1出发是不一定要等到时间P1的,从其它村庄出发都必须等到时间Pi拿到奖励才走
(题面中规定“:he will only walk from booth i to booth j in the event that he can actually collect a fabulous prize at booth j.)
所以对于任何w(1,i)<Pi的城市d[i]=1,否则d[i]=0;
然后按照Pi排序,因为从任何一个村庄(除了村庄1)肯定是不可能走到Pi比它早的村庄去的(因为去了之后等到地老天荒也拿不到奖励。。)
然后对于任何Pi+w(i,j)<=Pj的i和j,d[j]=max(d[i]+1,d[j])。
#include<cstdio>#include<algorithm>#include<cstring>#define INF 0x3f3f3f3fusing namespace std;typedef struct{int a,b;}node;bool cmp(const node& x,const node& y){return x.a<y.a;}int d[450],cap[450][450];node p[450];int main(){int n,i,j,k,ans;while(scanf("%d",&n)==1){memset(d,-INF,sizeof(d));ans=0;for(i=1;i<=n;i++){p[i].b=i;scanf("%d",&p[i].a);}sort(p+1,p+1+n,cmp);for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%d",&cap[i][j]);for(k=1;p[k].b!=1;k++);for(i=1;i<=n;i++)if(cap[p[k].b][p[i].b]<=p[i].a)d[i]=1;for(i=1;i<=n;i++){for(j=1;j<i;j++){if(p[j].a+cap[p[j].b][p[i].b]<=p[i].a)d[i]=d[i]>d[j]+1?d[i]:d[j]+1;}ans=ans>d[i]?ans:d[i];}printf("%d\n",ans);}}
- SOJ 2505: The County Fair
- soj 2505: The County Fair(离散化 + 记忆化搜索)
- SOJ 2505 The Country Fair
- SOJ2505: The County Fair题解动态规划
- bzoj1664 [Usaco2006 Open]County Fair Events 参加节日庆祝
- [BZOJ1664] [Usaco2006 Open]County Fair Events 参加节日庆祝
- 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝
- BZOJ 1664 [Usaco2006 Open] County Fair Events 参加节日庆祝
- [Usaco2006 Open]County Fair Events 参加节日庆祝
- 【BZOJ1664】[Usaco2006 Open]County Fair Events 参加节日庆祝【线段覆盖】【贪心】
- bzoj 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝(DP)
- BZOJ 1664 [Usaco2006 Open]County Fair Events 参加节日庆祝 贪心
- SOJ.The hardest problem
- SOJ 2035: The Tiling Problem
- SOJ.Output the Yanghui triangel
- Improvements in the Hadoop YARN Fair Scheduler
- soj
- SOJ 2868: find the smallest number
- 【2.0版本cocos2d-iphone 开发之CCProgressTimer制作游戏中的血条】
- Delphi7高效数据库程序设计_PDF 电子书
- LightOJ 1433 Minimum Arc Distance
- 杭电acm 1003Max Sum
- 杨辉三角 go on
- SOJ 2505: The County Fair
- PHP+Mysql日期时间和UNIX时间戳相互转换
- scrapy模拟登录新浪微博
- 词典(没写完)
- Code First Migrations更新数据库结构(数据迁移)
- CString 转化为 std::string
- linux 内核内存管理办法简介(下)
- Windows Phone 7 下 Socket(TCP) 与 PC 通讯
- CLRver -- 查看什么程序是用CLR写的