SDUT 2622 最短路径
2017-08-05 09:41
204 查看
我的心愿是世界和平!
题目描述:YY要走的路需要尽可能的短,并且走过路径的数目要为X 的倍数。输入的第一行为一个正整数T(1≤T≤20),代表测试数据组数。对于每组测试数据:输入的第一行为两个正整数N和M(1≤N≤100,1≤M≤10000)。接下来M行每行三个正整数U、V、W(0≤U,V<N,0≤W≤230),代表有一条从U到V的长度为W的有向路径。最后一行为三个正整数S、T、X(0≤S,T<N,1≤X≤10),代表YY要从S走到T,X为倍数。最后输出最短路径,若无法联通或路径数不为X的倍数,输出“No Answer!”。 思路:由于要求优先满足走过路径的数目为X的倍数,所以在原来算法的一维dis数组增加到二维,用来存走的路径数%x,最后dis[t][0]为所求。 样例:2 1 0 1 1 0 1 2 //No Answer! 3 2 0 1 1 1 2 1 0 2 2 //2
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int T,m,n,i,j,s,t,x,now,now1,k; long long mi; #define max 1e14 long long dis[110][11];//记录s到任意点的最短路径. int flag[110][11];//判断该点是否联通. long long map[110][110]; int dijkstra() { for(i=0; i<n; i++) { for(j=0; j<=10; j++) { dis[i][j]=max; flag[i][j]=0; dis[i][1]=map[s][i]; } } dis[s][0]=0; while(flag[t][0]==0) { now=-1; mi=max; now1=-1; for(i=0; i<=n-1; i++) { for(j=0; j<=10; j++) { if(flag[i][j]==0&&dis[i][j]<mi) { now=i; mi=dis[i][j]; now1=j; k=(j+1)%x; } } } if(now==-1) break; flag[now][now1]=1; for(i=0; i<=n-1; i++) { if(flag[i][k]==0&&dis[i][k]>map[now][i]+dis[now][now1]) { dis[i][k]=map[now][i]+dis[now][now1]; } } } } int main() { scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); for(i=0; i<n; i++) for(j=0; j<n; j++) map[i][j]=max; for(i=0; i<=m-1; i++) { int a,b; long long c; scanf("%d%d%lld",&a,&b,&c); if(c<map[a][b]) { map[a][b]=c; } } scanf("%d%d%d",&s,&t,&x); dijkstra(); if(dis[t][0]==max)//无法联通或路径数不为X的倍数. cout<<"No Answer!"<<endl; else cout<<dis[t][0]<<endl; } }
相关文章推荐
- sdut 2622 最短路径(Dijkstra算法求最短路)
- SDUT 2622 最短路径
- SDUT2622-------最短路径(SPFA)
- SDUT 2622 最短路径
- SDUT 2622 最短路径(Dijkstra)
- SDUT 2622 - 最短路径(SPFA+二维)
- 最短路径问题(sdut_1867)
- sdut2143图结构练习——最短路径
- SDUT-图结构练习——最短路径
- SDUT 1867 最短路径问题
- SDUT 1867 最短路径问题 (Floyd 多源)
- [SDUT](2143)图结构练习——最短路径 ---单源最短路径(图)
- SDUToj 2622 最短路径(SPFA)
- (模板题)sdut 2143 图结构练习——最短路径(SPFA求最短路)
- BZOJ2622 深入虎穴(最短路径)
- SDUT 2143 图结构练习——最短路径(Dijkstra 单源最短路径求解)
- SDUT 2143 图结构练习——最短路径 SPFA模板,方便以后用。。
- 【1867】最短路径问题 (Flord算法)(SDUT)
- SDUT 2143 图结构练习——最短路径
- [SDUT](3363)数据结构实验之图论七:驴友计划 ---单源最短路径(图)