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 ...
随机推荐
- MySQL——约束(constraint)详解
该博客说说关于数据库中一个重要的知识点——约束 一.什么是约束约束英文:constraint 约束实际上就是表中数据的限制条件 二.约束作用表在设计的时候加入约束的目的就是为了保证表中的记录完整和有效 ...
- spring-boot随笔
配置了spring-boot-starter-web的依赖后,会自动添加tomcat和spring mvc的依赖,那么spring boot 会对tomcat和spring mvc进行自动配置 < ...
- The role of the inter-controller consensus in the placement of distributed SDN controllers
2017 Computer Communications 问题:in-band网络的多控制器放置问题,考虑到多个控制器之间的同步(Ctr-Ctr)可能影响到控制器与交换机(Ctr-Sw)的时延: 关于 ...
- (转)广度优先搜索BFS和深度优先搜索DFS
1. 广度优先搜索介绍 广度优先搜索算法(Breadth First Search),又称为"宽度优先搜索"或"横向优先搜索",简称BFS. 它的思想是:从图中 ...
- 开源通用爬虫框架YayCrawler-运行与调试
本节我将向大家介绍如何运行与调试YayCrawler.该框架是采用SpringBoot开发的,所以可以通过java –jar xxxx.jar的方式运行,也可以部署在tomcat等容器中运行. 首先 ...
- react-router JS 控制路由跳转(转载)
Link组件用于正常的用户点击跳转,但是有时还需要表单跳转.点击按钮跳转等操作.这些情况怎么跟React Router对接呢? 下面是一个表单. <form onSubmit={this.han ...
- day3——关于<s:if/>和文件上传
一个小的注意点 <s:if test='#backyear==#yearatd'>selected="selected"</s:if> <s:if t ...
- Django_博客项目 注册用户引发 ValueError: The given username must be set
博客项目中 注册功能在ajax 提交数据时 报错 ValueError: The given username must be set 锁定到错误点为 判定为是无法获取到 username 字段 那先 ...
- 【题解】 [ZJOI2008] 泡泡堂(贪心/二分图/动态规划)
懒得复制,戳我戳我 Solution: 就是有一个贪心策略:(以下假设使\(A\)队分数更高) \(First:\)比较两个分值的最小值,如果\(A\)最小分比\(B\)最小分大就直接比较两个最小的, ...
- 【BZOJ1089】[SCOI2003]严格n元树(高精度,动态规划)
[BZOJ1089][SCOI2003]严格n元树(高精度,动态规划) 题面 BZOJ 洛谷 题解 设\(f[i]\)表示深度为\(i\)的\(n\)元树个数.然后我们每次加入一个根节点,然后枚举它的 ...