hdu 1224 最长路+dp
来源:互联网 发布:小金龙软件 编辑:程序博客网 时间:2024/06/05 18:06
题目链接
题意:有n个城市,每个城市都有一个有趣值,现在告诉你每个城市的有趣值,以及哪些城市之间可以到达,起点是1号城市,终点是n+1号城市,问路过城市的有趣值最大是多少,并输出此路线
思路:就是把最短路改成最长路,再倒着推回来就可以得到路线。具体看代码好了。
#include<cstdio>#include<cstring>#include<iostream>#include<vector>#include<queue>using namespace std;int dis[110];int ma[110][100];int n,m;int ans[110];int point[110];bool inqueue[110];vector<int>p[110];queue<int>s;void spfa(){ memset(inqueue,0,sizeof(0)); inqueue[1]=1; dis[1]=0; s.push(1); while(!s.empty()){ int c=s.front(); inqueue[c]=0; s.pop(); for(int j=0;j<p[c].size();j++){ int i=p[c][j]; if(dis[c]+ma[c][i]>dis[i]){ dis[i]=ma[c][i]+dis[c]; if(!inqueue[i]){ s.push(i); inqueue[i]=1; } } } }}int main(){ int cas; cin>>cas; for(int ca=1;ca<=cas;ca++){ memset(ma,0,sizeof(ma)); memset(dis,0,sizeof(dis)); for(int i=0;i<110;i++) p[i].clear(); cin>>n; for(int i=1;i<=n;i++) scanf("%d",&point[i]); point[n+1]=1; cin>>m; int a,b; while(m--){ scanf("%d %d",&a,&b); ma[a][b]=point[b]; p[a].push_back(b); } spfa(); int i=0,cur=n+1; while(cur!=1){ for(int j=1;j<=n+1;j++){ if(ma[j][cur]&&dis[j]+ma[j][cur]==dis[cur]){ cur=j; ans[i++]=j; } } } printf("CASE %d#\n",ca); printf("points : %d\n",dis[n+1]-1); printf("circuit : "); for(int j=i-1;j>=0;j--){ cout<<ans[j]<<"->"; } cout<<1<<endl; if(ca!=cas) cout<<endl; } return 0;}
0 0
- hdu 1224 最长路+dp
- hdu 1224 Free DIY Tour(最长路/dp)
- 【数塔DP|最长路】HDU-1224 Free DIY Tour
- HDU 6201 树形DP 或 最长路
- hdu 1224 最长路
- HDU 4001 To Miss Our Children Time 最长路, DP
- hdu 2196树形dp经典 树的最长路
- HDU 6201 transaction transaction transaction【树形DP||SPFA最长路】
- 【转】HDU 6201 树形DP 或 最长路
- hdu 1224(最长路)
- hdu 1160 DP 最长子序列问题
- hdu--1231--最长子序列(DP)
- hdu 1003 最大最长子序列 dp
- HDU 5087(DP 次最长子序列)
- 最长递增公共子序列dp(hdu 1423 hdu 4512)
- [HDU1224]dp单向最长路dp
- HDU 4001 To Miss Our Children Time (DAG上的DP,最长路)
- HDU 2196 Computer (tree-DP 树的最长路 经典) #by Plato
- [linux,c++]使用指针函数实现多个函数调用_Advanced
- 静态库、共享库、动态库概念?
- 请给国产操作系统一些支持
- memcached缓存系统
- sql语句查询获取下一条数据。
- hdu 1224 最长路+dp
- 第9周项目2-分数的累加
- 【第2章 习题3】
- 堆和栈的区别
- mysql 同一张表查询 left join
- POJ 1306 Combinations 高精度乘法
- [leetcode]Valid Number
- 手把手教你如何用U盘装系统
- PHP常用正则表达式汇总