HDU 2112 HDU Today
来源:互联网 发布:济南淘宝代运营公司 编辑:程序博客网 时间:2024/06/04 19:44
//题意就不说了,题也是个水题,但是值得注意的就是要清空//
#include<stdio.h>#include<string.h>#include<string>#include<algorithm>using namespace std;#include<map>map<string,int>a;const int inf=1<<29;char s1[151],s2[151];char r1[151],r2[151];int w[155][155],vis[155],d[155];int n,m,p;void dij(int st,int ed){ int i,j; memset(vis,0,sizeof(vis)); for(i=st; i<=ed; i++) { d[i]=w[st][i]; } d[st]=0; vis[st]=1; for(i=st; i<=ed; i++) { int now=inf,x; for(j=st; j<=ed; j++) { if(!vis[j]&&d[j]<now) { now=d[j]; x=j; } } vis[x]=1; for(j=st; j<=ed; j++) { if(!vis[j]&&d[j]>d[x]+w[x][j]) { d[j]=d[x]+w[x][j]; } } }}int main(){ while(scanf("%d",&n)!=EOF&&n!=-1) { int i,j; for(i=1; i<=152; i++) { for(j=1; j<=152; j++) { if(i==j) { w[i][j]=0; } else { w[i][j]=inf; } } } scanf("%s%s",r1,r2); int ok=1; if(strcmp(r1,r2)==0) { ok=0; } a.clear();//必须清空,不清空,导致map里面的东西越来越多,查的越来越慢 a[r1]=1,a[r2]=2; m=3; for(i=0; i<n; i++) { scanf("%s%s%d",s1,s2,&p); if(!a[s1]) a[s1]=m++; if(!a[s2]) a[s2]=m++; if(p<w[a[s1]][a[s2]]) w[a[s1]][a[s2]]=w[a[s2]][a[s1]]=p; } if(!ok) { printf("0\n"); } else { dij(1,m); if(d[a[r2]]==inf) { printf("-1\n"); } else { printf("%d\n",d[a[r2]]); } } } return 0;}
0 0
- HDU 2112 HDU Today
- hdu 2112 HDU Today
- Hdu-2112 HDU Today
- hdu 2112 HDU Today
- HDU 2112 HDU Today
- hdu 2112 HDU Today
- HDU 2112 HDU Today
- hdu 2112 HDU Today
- HDU 2112 HDU Today
- HDU 2112 HDU Today
- HDU 2112 HDU Today
- hdu 2112 hdu today
- hdu 2112 HDU Today
- hdu 2112 HDU Today
- hdu 2112 HDU Today
- hdu 2112 HDU Today
- HDU 2112 HDU Today
- hdu 2112:HDU Today
- 一个变量在uefi中的传递过程
- <HTML5>原生的强大DOM选择器querySelector
- tableView简单认识以及性能优化
- linq 调试转换成sql语句
- dataset中获取其中一个表中某列的值放到List中
- HDU 2112 HDU Today
- python logging 日志详细配置
- main(int argc, char * argv[])讲解
- MBR损坏修复(二)
- 关于memory warning
- MySQL单表百万数据记录分页性能优化
- java 克隆的浅拷贝与深拷贝
- Asp.net范例:amCharts(.net版)实现图形报表
- 【已解决】:让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap