HDU 2066 一个人的旅行
来源:互联网 发布:时代光华 知乎 编辑:程序博客网 时间:2024/05/13 11:19
转载请注明出处:http://blog.csdn.net/a1dark
分析:暴力枚举起点和终点、本来一道秒杀的水题、本不想水的、但是想想还是水一下、不水不要紧、一水吓一跳、memset把我坑惨了、原来只能用memset定义0而不能定义其他数据、切记切记!
#include<stdio.h>#include<queue>#include<algorithm>using namespace std;#include<string.h>#define INF 0x7fffffff#define N 1005int map1[N][N];int dist[N];int vis[N];int st[N];int ed[N];int maxx;int spfa(int s,int e){ memset(vis,0,sizeof(vis)); for(int i=0;i<=maxx;i++) dist[i]=INF; queue<int >q; dist[s]=0; q.push(s); vis[s]=1; while(!q.empty()){ int now=q.front(); q.pop(); vis[now]=0; for(int i=1;i<=maxx;i++){ if(map1[now][i]!=INF&&(map1[now][i]+dist[now]<dist[i])){ dist[i]=map1[now][i]+dist[now]; if(!vis[i]){ q.push(i); vis[i]=1; } } } } return dist[e];}void init(){ for(int i=0;i<N;i++) for(int j=0;j<N;j++){ if(i==j)map1[i][j]=0; else map1[i][j]=INF; }}int main(){ int T,S,D; while(scanf("%d%d%d",&T,&S,&D)!=EOF){ init(); maxx=1; int s,e,v; for(int i=1;i<=T;i++){ scanf("%d%d%d",&s,&e,&v); if(v<map1[s][e]){ map1[s][e]=v; } if(v<map1[e][s]){ map1[e][s]=v; } if(maxx<s)maxx=s; if(maxx<e)maxx=e; } for(int i=1;i<=S;i++) scanf("%d",&st[i]); for(int i=1;i<=D;i++) scanf("%d",&ed[i]); int min=INF; for(int i=1;i<=S;i++){ for(int j=1;j<=D;j++){ if(min>spfa(st[i],ed[j])) min=spfa(st[i],ed[j]); } } printf("%d\n",min); } return 0;}
- HDU 2066 一个人的旅行
- hdu 2066 一个人的旅行
- HDU-2066 一个人的旅行
- Hdu-2066 一个人的旅行
- HDU 2066 一个人的旅行
- HDU 2066 一个人的旅行
- hdu 2066 一个人的旅行
- hdu 2066 一个人的旅行
- hdu 2066 一个人的旅行
- HDU 2066 一个人的旅行
- hdu 2066 一个人的旅行
- HDU 2066 一个人的旅行
- hdu 2066 一个人的旅行
- hdu 2066 一个人的旅行
- HDU 2066 一个人的旅行
- HDU 2066 一个人的旅行
- HDU 2066 一个人的旅行
- hdu 2066(一个人的旅行)
- Libcurl使用入门教程
- Handle concurrency problem by Entity Framework
- HDU 4289 Control
- Python基础 3----Python函数及类
- flashback table 闪回表到指定时间或SCN
- HDU 2066 一个人的旅行
- gcc 编译过程简介
- 改变动画速率
- 线段树模板
- poj 1182食物链
- RCP 右键菜单片段
- 初学Oracle时遇到的一点问题以及解决办法
- 动画监听
- php基础(一)