如果从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】相关推荐

  1. hdu 6395Sequence【矩阵快速幂】【分块】

    Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total ...

  2. HDU 4382 【矩阵快速幂】【欧拉降幂】

     自己的思路写的 102 × 102 大小的转化矩阵,好在线代学的还行想到用矩阵分块乘法过了- 看其他人的题解用的 3 × 3  构造一个 转化矩阵 T T T ,一个用来存储结果的 P P P  先 ...

  3. 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 ...

  4. HDU 1853 HDU 3488【有向环最小权值覆盖问题 】带权二分图匹配 KM算法

    HDU 1853 & HDU 3488[有向环最小权值覆盖问题 ]最小费用最大流 In the kingdom of Henryy, there are N (2 <= N <= ...

  5. HDU 1853 HDU 3488【有向环最小权值覆盖问题 】最小费用最大流

    HDU 1853 & HDU 3488[有向环最小权值覆盖问题 ]带权二分图匹配 KM算法 In the kingdom of Henryy, there are N (2 <= N & ...

  6. HDU - 2089 不要62 【暴力打表】【数位DP】

    不要62 HDU - 2089 题意 求区间[n,m]之间有多少个数字不含4或者连续的62 解法1 由于数据范围是0~1e6,所以直接暴力判断每一位数字是否含有4或者62,然后求前缀和即可 #incl ...

  7. 【后空翻机器人代码】斯坦福后空翻机器人设计、代码全开源,成本降至3000美元,人人皆可DIY|湾区人工智能...

    机器之心报道 机器之心编辑部 斯坦福学生机器人俱乐部(Stanford Student Robotics club)Extreme Mobility 团队最近迎来了一名新成员--一个名为 Stanfo ...

  8. 制作加密狗程序_【火腿DIY】用于SDR应用程序的自定义热键键盘 | 视障人士的选择...

    Christoph用于SDR应用程序的自制自定义热键键盘 上周,我在SDRplay 社交页面上看到了Christoph Jahn的精彩文章. 克里斯托夫(Christoph)制作了一个与SDRuno一 ...

  9. 【开源DIY制作分享】采用STC15W408AS制作七彩LED广州塔

    [广州塔DIY]采用STC15W408AS制作七彩LED广州塔 之前在上升沿购买的散件led散件回来自己搭建的广州塔的,半年前突然就不亮了,这次重新购买回来了芯片,将程序烧录进去,重新恢复了.采用的单 ...

最新文章

  1. Windows Server 2012正式版RDS系列②
  2. bar图设置距离 python_python画图设置坐标轴的位置及角度及设置colorbar
  3. 学习Spring Boot:(十七)Spring Boot 中使用 Redis
  4. spanner 的前世今生
  5. Struts 拦截器
  6. Java中常见数据结构:list与map -底层如何实现
  7. OpenCV中用findContours函数出现的问题和解决方法
  8. Webshell和一句话木马
  9. 路遥《平凡的世界》读后感
  10. 新手python的100个实战项目-实例分享 | 4个Python实战项目(一)
  11. 安全合规/法案--30--《网络安全审查办法》原文及解读
  12. 用只读打开服务器上的文档,打开WebDAV文档在MS Office中以IT只读方式打开WebDAV服务器...
  13. Javascript笔记大全03
  14. Qt编写安防视频监控系统67-跨平台及国产系统
  15. Spring5春天还是配置地狱
  16. TypeScript泛型工具
  17. 《数据仓库与数据挖掘教程》ch01绪论 章节整理
  18. 一次Linux系统被攻击的分析过程
  19. 暴强 西游记人物介绍(转载)!!!!
  20. 在一个Echarts中绘制多张图表(echarts多系列混合)

热门文章

  1. mysql5.6 忘记root密码后,如何找回密码?
  2. 【微信小程序】wx:for
  3. Mxnet的.lst文件介绍
  4. html 二级菜单延迟消失,如果让子菜单延迟消失?
  5. movie计算机英语作文,一篇“Movie Review英语作文
  6. hbuilder怎么没法插入字符了_一个你所不知道的加密方式--零宽字符加密
  7. kylin如何支持flink_Kylin 在腾讯的平台化及 Flink 引擎实践
  8. 文件服务器和客户模式有什么区别,客户端和服务器端编程有什么区别?
  9. centos 卸载自带的 java
  10. 趣图:如何假装自己是一个IT人?