hdu 1224【Free DIY Tour】
如果从i->j有路的话,dp[j] = max(dp[j],dp[i]+value[j]),并记录下path[j],如果选择的是dp[i]+value[j],则path[j] = i;之后回溯就可以找到所有路径了……其实这一题可以用压缩版的数组(其实一维数组啦)存储是否有路径,可以节约一半的空间(因为一个地方只有到另外一个编号比它大的城市的路),为了方便我还是用的二维数组^_^
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 5 int dp[105]; 6 char map[105][105]; 7 int path[105]; 8 int value[105]; 9 10 int main() 11 { 12 int cases; 13 int n; 14 int cas = 1; 15 16 scanf("%d",&cases); 17 while(cases --) 18 { 19 scanf("%d",&n); 20 value[n+1] = 0; 21 for(int i = 1;i <= n;i ++) 22 { 23 scanf("%d",&value[i]); 24 } 25 26 int m; 27 scanf("%d",&m); 28 memset(map,false,sizeof(map)); 29 for(int i = 0;i < m;i ++) 30 { 31 int p,r; 32 scanf("%d%d",&p,&r); 33 map[p][r] = true; 34 } 35 memset(dp,0,sizeof(dp)); 36 37 for(int i = 1;i <= n + 1;i ++) 38 { 39 for(int j = i + 1;j <= n + 1;j ++) 40 { 41 if(map[i][j]) 42 { 43 if(dp[i] + value[j] > dp[j]) 44 { 45 dp[j] = dp[i] + value[j]; 46 path[j] = i; 47 } 48 } 49 } 50 } 51 if(cas > 1) 52 printf("\n"); 53 printf("CASE %d#\n",cas ++); 54 printf("points : %d\n",dp[n+1]); 55 int ans[105]; 56 int i = n+1; 57 int step = 0; 58 while(i != 1) 59 { 60 ans[step] = path[i]; 61 i = path[i]; 62 step ++; 63 } 64 printf("circuit : "); 65 for(int j = step - 1;j>= 0;j --) 66 { 67 printf("%d->",ans[j]); 68 } 69 printf("1\n"); 70 } 71 72 return 0; 73 }
转载于:https://www.cnblogs.com/Shirlies/archive/2012/08/16/2643037.html
hdu 1224【Free DIY Tour】相关推荐
- hdu 6395Sequence【矩阵快速幂】【分块】
Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total ...
- HDU 4382 【矩阵快速幂】【欧拉降幂】
自己的思路写的 102 × 102 大小的转化矩阵,好在线代学的还行想到用矩阵分块乘法过了- 看其他人的题解用的 3 × 3 构造一个 转化矩阵 T T T ,一个用来存储结果的 P P P 先 ...
- HDU ACM 1224 Free DIY Tour (SPFA)
Free DIY Tour Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- HDU 1853 HDU 3488【有向环最小权值覆盖问题 】带权二分图匹配 KM算法
HDU 1853 & HDU 3488[有向环最小权值覆盖问题 ]最小费用最大流 In the kingdom of Henryy, there are N (2 <= N <= ...
- HDU 1853 HDU 3488【有向环最小权值覆盖问题 】最小费用最大流
HDU 1853 & HDU 3488[有向环最小权值覆盖问题 ]带权二分图匹配 KM算法 In the kingdom of Henryy, there are N (2 <= N & ...
- HDU - 2089 不要62 【暴力打表】【数位DP】
不要62 HDU - 2089 题意 求区间[n,m]之间有多少个数字不含4或者连续的62 解法1 由于数据范围是0~1e6,所以直接暴力判断每一位数字是否含有4或者62,然后求前缀和即可 #incl ...
- 【后空翻机器人代码】斯坦福后空翻机器人设计、代码全开源,成本降至3000美元,人人皆可DIY|湾区人工智能...
机器之心报道 机器之心编辑部 斯坦福学生机器人俱乐部(Stanford Student Robotics club)Extreme Mobility 团队最近迎来了一名新成员--一个名为 Stanfo ...
- 制作加密狗程序_【火腿DIY】用于SDR应用程序的自定义热键键盘 | 视障人士的选择...
Christoph用于SDR应用程序的自制自定义热键键盘 上周,我在SDRplay 社交页面上看到了Christoph Jahn的精彩文章. 克里斯托夫(Christoph)制作了一个与SDRuno一 ...
- 【开源DIY制作分享】采用STC15W408AS制作七彩LED广州塔
[广州塔DIY]采用STC15W408AS制作七彩LED广州塔 之前在上升沿购买的散件led散件回来自己搭建的广州塔的,半年前突然就不亮了,这次重新购买回来了芯片,将程序烧录进去,重新恢复了.采用的单 ...
最新文章
- Windows Server 2012正式版RDS系列②
- bar图设置距离 python_python画图设置坐标轴的位置及角度及设置colorbar
- 学习Spring Boot:(十七)Spring Boot 中使用 Redis
- spanner 的前世今生
- Struts 拦截器
- Java中常见数据结构:list与map -底层如何实现
- OpenCV中用findContours函数出现的问题和解决方法
- Webshell和一句话木马
- 路遥《平凡的世界》读后感
- 新手python的100个实战项目-实例分享 | 4个Python实战项目(一)
- 安全合规/法案--30--《网络安全审查办法》原文及解读
- 用只读打开服务器上的文档,打开WebDAV文档在MS Office中以IT只读方式打开WebDAV服务器...
- Javascript笔记大全03
- Qt编写安防视频监控系统67-跨平台及国产系统
- Spring5春天还是配置地狱
- TypeScript泛型工具
- 《数据仓库与数据挖掘教程》ch01绪论 章节整理
- 一次Linux系统被攻击的分析过程
- 暴强 西游记人物介绍(转载)!!!!
- 在一个Echarts中绘制多张图表(echarts多系列混合)
热门文章
- mysql5.6 忘记root密码后,如何找回密码?
- 【微信小程序】wx:for
- Mxnet的.lst文件介绍
- html 二级菜单延迟消失,如果让子菜单延迟消失?
- movie计算机英语作文,一篇“Movie Review英语作文
- hbuilder怎么没法插入字符了_一个你所不知道的加密方式--零宽字符加密
- kylin如何支持flink_Kylin 在腾讯的平台化及 Flink 引擎实践
- 文件服务器和客户模式有什么区别,客户端和服务器端编程有什么区别?
- centos 卸载自带的 java
- 趣图:如何假装自己是一个IT人?