hdu 2923 Einbahnstrasse(Floyd+map)
来源:互联网 发布:以太网地址和mac地址 编辑:程序博客网 时间:2024/05/29 10:58
http://acm.split.hdu.edu.cn/showproblem.php?pid=2923
题目大意:
给出城市数,破车数和道路数,然后跟着m条路线,箭头为指向,数字为花费。求出从公司派出车,到每个城市回收破车的最小花费,要注意每辆车只能回收一辆破车。
用map记录,注意有重边,然后Floyd求出 d[u][v] 的花费。
#include<iostream>#include<cstdio>#include<map>#define INF 0x3f3f3f3fusing namespace std;const int maxn=105;int tt=0,sum,n,c,m,cnt,d[maxn][maxn];char str[1005][maxn];map<string,int>mp;void Floyd(){ for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) d[i][j]=min(d[i][j],d[i][k]+d[k][j]);}int main(){ while(~scanf("%d%d%d",&n,&c,&m)&&(n||c||m)) { sum=0; mp.clear(); for(int i=0;i<=n;i++) for(int j=0;j<=n;j++) d[i][j]=INF; for(int i=0;i<=c;i++) scanf("%s",str[i]); cnt=0; for(int i=0;i<m;i++) { int w; char from,to,s1[15],s2[15]; scanf("%s %c-%d-%c %s",s1,&from,&w,&to,s2); if(!mp[s1]) mp[s1]=++cnt; if(!mp[s2]) mp[s2]=++cnt; int u=mp[s1],v=mp[s2]; if(from=='<'&&d[v][u]>w) d[v][u]=w; if(to=='>'&&d[u][v]>w) d[u][v]=w; } Floyd(); int src=mp[str[0]]; for(int i=1;i<=c;i++) sum+=d[src][mp[str[i]]]+d[mp[str[i]]][src]; printf("%d. %d\n",++tt,sum); }}
阅读全文
0 0
- hdu 2923 Einbahnstrasse(Floyd+map)
- HDU 2923 Einbahnstrasse 【Floyd+map】
- HDU 2923 - Einbahnstrasse(floyd)
- hdu 2923 Einbahnstrasse【floyd】
- HDU 2923 Einbahnstrasse(最短路 Floyd)
- HDU2923---Einbahnstrasse(map+floyd)
- HDU 2923-Einbahnstrasse(floyd&&字符串输入)
- hdu2923 Einbahnstrasse map+floyd最短路
- hdu 2923 Einbahnstrasse 最短路spfa+map容器
- 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
- Socket网络编程--小小网盘程序(1)
- 2.CG_Shader基本属性以及语义
- PHP 异常处理
- XTU 1264 字符不重复子串(DP)
- 我的web渗透之路
- hdu 2923 Einbahnstrasse(Floyd+map)
- 使用Apache POI处理EXCEL数据
- 《Java编程思想》数组的实用功能
- ajax接收到的数据是一个页面的代码的原因
- 大话Vim!!!
- Gym-100851F Froggy Ford 最短路变形 dijkstra || spfa
- 高精度加法和高精度乘法
- 顺序表实现
- sgu-194-Reactor Cooling(无源汇有上下界最大流)