HDU 2112 HDU Today 最短路
题目描述:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<map>
#include<string>
using namespace std;
const int MAX = 0xffffff,SIZE = ;
int Map[SIZE][SIZE];
char str1[][],str2[][];
int str3[];
int n,f;
map<string,int> map1;
int judge(char *p) {
string s1 = p;
pair<map<string,int>::iterator,bool> iter;
iter = map1.insert(pair<string,int> (s1,++f));
if(iter.second)
return f;
else {
f--;
return map1[s1];
}
}
int main() {
char sta[],end[];
int s,e;
while(scanf("%d",&n)&&n!=-) {
map1.clear();
scanf("%s%s",sta,end);
f = ;
for(int i = ;i<=n;++i)
scanf("%s%s%d",str1[i],str2[i],&str3[i]);
if(!strcmp(sta,end)) {
printf("0\n");
continue;
}
for(int i = ;i<SIZE;++i) {
Map[i][i] = ;
for(int j = ;j<SIZE;++j)
Map[i][j] = MAX;
} for(int i = ;i<=n;++i) {
int x = judge(str1[i]);
int y = judge(str2[i]);
Map[x][y] = Map[y][x] = str3[i];
}
s = judge(sta);
e = judge(end);
for(int i = ;i<=f;++i)
for(int j = ;j<=f;++j)
for(int k = ;k<=f;++k)
Map[j][k] = std::min(Map[j][i]+Map[i][k],Map[j][k]);
if(Map[s][e]==MAX)
printf("-1\n");
else printf("%d\n",Map[s][e]);
}
return ;
}
没用STL的代码:
#include<cstdio>
#include<cstring>
#include<iostream>
const int MAX = 0xffffff,SIZE = ;
int map[SIZE][SIZE];
char str1[][],str2[][],str[][];
int str3[];
int n,f;
int judge(char *p) {
for(int i = ;i<=f;++i)
if(!strcmp(str[i],p))
return i;
strcpy(str[++f],p);
return f;
}
int main() {
char s1[],s2[],sta[],end[];
int s,e;
while(scanf("%d",&n)&&n!=-) {
scanf("%s%s",sta,end);
f = ;
for(int i = ;i<=n;++i)
scanf("%s%s%d",str1[i],str2[i],&str3[i]);
if(!strcmp(sta,end)) {
printf("0\n");
continue;
}
for(int i = ;i<SIZE;++i) {
map[i][i] = ;
for(int j = ;j<SIZE;++j)
map[i][j] = MAX;
}
for(int i = ;i<=n;++i) {
int x = judge(str1[i]);
int y = judge(str2[i]);
map[x][y] = map[y][x] = str3[i];
}
s = judge(sta);
e = judge(end);
for(int i = ;i<=f;++i)
for(int j = ;j<=f;++j)
for(int k = ;k<=f;++k)
map[j][k] = std::min(map[j][i]+map[i][k],map[j][k]);
if(map[s][e]==MAX)
printf("-1\n");
else printf("%d\n",map[s][e]);
}
return ;
}
HDU 2112 HDU Today 最短路的更多相关文章
- hdu 2112 HDU Today
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的 ...
- HDU 2112 HDU Today(Dijkstra)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Time Limit: 15000/5000 MS (Java/Others ...
- hdu 2112 HDU Today (最短路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目大意:给出起点和终点,然后算出最短的路. 不过有好多细节要注意: (1)起始点和终止点相等的 ...
- hdu 2112(字典树+最短路)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu 2112 HDU Today (最短路,字符处理)
题目 题目很简单,只是多了对地名转化为数字的处理,好吧,这我也是参考网上的处理办法,不过大多数的人采用map来处理 注意初始化注意范围,不然会wa!!!(这是我当时wa的原因org) 大家容易忽视的地 ...
- hdu 2112 HDU Today 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目意思:又是求最短路的,不过结合埋字符串来考查. 受之前1004 Let the Balloo ...
- HDU 2112 HDU Today (Dijkstra算法)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- hdu 2112 HDU Today (floyd算法)
这道题貌似在原来学长给我们的搞的小比赛中出过! 这次又让我遇到,果断拿下! 不过方法很蠢,跑了1000多ms,虽然要求5000ms以内! 题目就是给你一些位置之间的距离,然后再让你求特定的两点之间的距 ...
- HDU 2112 HDU Today(STL MAP + Djistra)
题目链接:HDU Today 立即集训要開始,抓紧时间练练手,最短路的基础题,第一次用STL的map 题目非常水,可是错了N遍.手贱了.本题不优点理的就是把地名转化为数字 #include <i ...
随机推荐
- L2-031 深入虎穴(BFS)
著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报.已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门.每一扇门背后或者是一个房间,或者又有很多条路,同样是每条 ...
- 主流蓝牙芯片盘点,Nordic/TI/博通哪家强?
无线通信技术自19世纪中期诞生以来,从使用狼烟.火炬.闪光镜.信号弹等在视距内传输信息,到1838年塞缪尔・莫尔斯发明电报网,再到电报网被电话取代,再到几十年后的1895年马可尼首次从英国怀特岛到30 ...
- Linux内核分析课程期中总结
Linux内核分析课程期中总结 姓名:王朝宪 学号:20135114 注: 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com ...
- javascript 函数的几种声明函数以及应用环境
本页只列出常用的几种方式,当然还有比如new Function()以及下面三种的组合. 1.函数式声明 例子:function sum(a,b){ return a+b; }; 2.函数表达式声明(匿 ...
- (第三周)c#程序理解
阅读下面程序,请回答如下问题: 问题1:这个程序要找的是符合什么条件的数? 问题2:这样的数存在么?符合这一条件的最小的数是什么? 问题3:在电脑上运行这一程序,你估计多长时间才能输出第一个结果?时间 ...
- CodeM Qualifying Match Q5
问题描述: 给定两个整数 l 和 r ,对于所有满足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ,把 x 的所有约数全部写下来. 对于每个写下来的数,只保留最高位的那个数码.求1-9每个数码出现 ...
- Alpha 冲刺二
团队成员 051601135 岳冠宇 051604103 陈思孝 031602629 刘意晗 031602248 郑智文 031602234 王淇 会议照片 项目燃尽图 项目进展 暂无进展, 项目描述 ...
- PAT 1064 朋友数
https://pintia.cn/problem-sets/994805260223102976/problems/994805267416334336 如果两个整数各位数字的和是一样的,则被称为是 ...
- ejabberd在windows10上安装记录
安装完ejabberd:ejabberd-17.11-windows-installer.exe 启动报错:bash ejabberdctl register "admin" &q ...
- mybatis之关联(2)
MapperAssoDao.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE map ...