最短路径
来源:互联网 发布:电商网站php 编辑:程序博客网 时间:2024/05/29 03:23
最短路径
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
YY并不是把东西直接搬到赛场,而是从S路口搬运到T路口。由于YY非常懒而且他有轻度强迫症。所以他要走的路需要尽可能的短,并且走过路径的数目要为X的倍数。
输入
≤≤对于每组测试数据:
≤≤≤≤接下来V、,, 0≤W≤2),代表有一条从V的长度为最后一行为三个正整数T、≤,N≤10)。
输出
“)。
64-bit整型请使用long long来定义,并且使用%lld或cin、<font new="" roman,="" serif\"="" face="\"Times">%I64d。
示例输入
22 10 1 10 1 23 20 1 11 2 10 2 2
示例输出
No Answer!2
提示
来源
“师创杯”山东理工大学第五届ACM程序设计竞赛
示例程序
#include <stdio.h> #include <string.h> #include <queue> #include <climits> using namespace std; long long INF=LONG_LONG_MAX; long long dis[110][12]; int vis[110]; struct edge { int to; int w; }; int n,m,s,t,x; vector<struct edge>map[110]; void SPFA() { queue<int>a; for(int i=0; i<n; i++) { for(int k=0; k<=x; k++) { dis[i][k]=INF; } } memset(vis,0,sizeof(vis)); dis[s][0]=0; vis[s]=1; a.push(s); while(!a.empty()) { int u=a.front(); a.pop(); vis[u]=0; int tt=map[u].size(); for(int i=0; i<tt; i++) { int to=map[u][i].to; for(int j=0; j<x; j++) { if(dis[u][j]<INF&&dis[to][(j+1)%x]>dis[u][j]+map[u][i].w) { dis[to][(j+1)%x]=dis[u][j]+map[u][i].w; if(!vis[to]) { a.push(to); vis[to]=1; } } } } } } int main() { int T,u,v,w; struct edge tmp; scanf("%d",&T); while(T--) { scanf("%d %d",&n,&m); for(int i=0; i<n; i++) { map[i].clear(); } for(int i=1; i<=m; i++) { scanf("%d %d %d",&u,&v,&w); tmp.to=v; tmp.w=w; map[u].push_back(tmp); } scanf("%d %d %d",&s,&t,&x); SPFA(); if(dis[t][0]>=INF) { printf("No Answer!\n"); } else { printf("%lld\n",dis[t][0]); } } return 0; }
0 0
- 最短路径算法
- 最短路径算法
- 最短路径理解
- 最短路径算法
- 最短路径算法
- 最短路径问题
- 最短路径
- 最短路径
- 最短路径算法
- 图@ 最短路径
- 最短路径
- 最短路径算法
- 最短路径
- hdu2544(最短路径)
- 最短路径问题
- 最短路径问题
- 最短路径算法
- 最短路径算法
- XML解析(三),PULL解析XML
- 走迷宫
- 程序猿必须克服的十大编程禁忌
- php入门基础 二
- 内核阅读之浅析Linux2.6.34内核路由数据转发(二)
- 最短路径
- 【Leetcode】Set Matrix Zeroes
- Hadoop中数据序列化的常用方式:SequenceFile, Avro, Thrift, ProtoBuff -- 待完善
- 二分练习
- 电影节
- 小鑫的城堡
- Android监听耳机按键事件
- BZOJ 1087 (状态压缩DP)
- php 入门基础 三