HDU 2923 Einbahnstrasse
来源:互联网 发布:淘宝店铺的图片 编辑:程序博客网 时间:2024/05/18 17:41
最短路
有容易错的地方
1.拉一辆车要回一趟公司
2.车可能本来就在公司,也可能很多辆车放在一个地方,所以读入的时候也要判断这个地点是否已经存在
3.要注意<对应的方向,不过弄反了也没有关系吧, 反正要一来一回的
#include <iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<string>#define N 1005#include<map>#define INF 1<<29using namespace std;int n,m[N][N],q[N];map<string ,int> M;void Floyd(){ int i,j,k; for(k=1;k<=n;k++) for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ m[i][j]=min(m[i][j],m[i][k]+m[k][j]); } }}int main(){ string str,str1,str2; int ics=0,l,x,y,c,r,i,j,t,tmp,cnt; while(~scanf("%d%d%d",&n,&c,&r)){ if(!n&&!c&&!r) break; cnt=1;x=0;t=0; M.clear(); c++; while(c--){ cin>>str; if(M[str]==0) M[str]=cnt++; q[t++]=M[str]; } for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ m[i][j]=INF; if(i==j) m[i][j]=0; } } while(r--){ cin>>str1>>str>>str2; if(M.find(str1)==M.end()) M[str1]=cnt++; if(M.find(str2)==M.end()) M[str2]=cnt++; x=M[str1],y=M[str2]; l=str.size(); tmp=0; i=0; while(!isdigit(str[i])) i++; while(isdigit(str[i])) tmp=tmp*10+str[i]-'0',i++; if(str[0]=='<') m[y][x]=min(m[y][x],tmp); if(str[l-1]=='>') m[x][y]=min(m[x][y],tmp); } Floyd(); int ans=0; for(i=0;i<t;i++){ ans+=m[1][q[i]]; ans+=m[q[i]][1]; } printf("%d. %d\n",++ics,ans); } return 0;}
0 0
- HDU 2923 Einbahnstrasse
- hdu 2923 Einbahnstrasse
- HDU 2923 Einbahnstrasse
- hdu 2923 Einbahnstrasse
- hdu 2923 Einbahnstrasse
- hdu 2923 Einbahnstrasse
- hdu 2923:Einbahnstrasse
- HDU 2923 Einbahnstrasse
- HDU 2923 Einbahnstrasse
- hdu 2923 Einbahnstrasse
- HDU 2923 Einbahnstrasse (Flord)
- hdu 2923 Einbahnstrasse【floyd】
- HDU-2923-Einbahnstrasse
- HDU 2923:Einbahnstrasse
- hdu 2923 Einbahnstrasse
- HDU 2923 Einbahnstrasse
- HDU 2923 Einbahnstrasse
- HDU 2923-Einbahnstrasse
- form表单中input标签的11个高级用法
- QT生成DLL,调用DLL
- STL中的常用的vector,map,set,Sort用法
- 卡尔曼理论学习及公示推导
- 两分钟彻底让你明白Android Activity生命周期(图文)!
- HDU 2923 Einbahnstrasse
- UVA - 694 - The Collatz Sequence
- STL算法-交集,并集,差集,对称差
- maven pom 详解
- C++函数重载
- spring中前置通知与后置通知
- Cocos2D-x游戏开发之二十一:ScheduleUpdate 和ScheduleOne的用法
- ubuntu下NDK9交叉编译ffmpeg
- 隐藏Ubuntu引导,直接进入系统——变色龙引导Linux,Windows,Mac OS(苹果系统)攻略之二