HDU 2112 HDU Today(STL MAP + Djistra)
题目链接:HDU Today
立即集训要開始,抓紧时间练练手,最短路的基础题,第一次用STL的map
题目非常水,可是错了N遍。手贱了。本题不优点理的就是把地名转化为数字
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <map>
#define N 155
#define INF 1e7
using namespace std; int m[N][N],dis[N];
int vis[N];
int edge,n;
int Djistra()
{
for(int i = 0;i<=edge;i++)
{
vis[i] = 0;
dis[i] = m[1][i];
}
vis[1] = 1;
dis[1] = 0;
int u,mi;
for(int i = 1;i<=edge;i++)
{
u = 1; mi = INF;
for(int j = 1;j<=edge;j++)
{
if(!vis[j] && dis[j]<mi)
{
u = j;
mi = dis[j];
}
}
vis[u] = 1;
for(int j = 1;j<=edge;j++)
{
if(!vis[j] && m[u][j] < INF && dis[u] + m[u][j] < dis[j])
{
dis[j] = dis[u] + m[u][j];
}
}
}
return dis[2];
} /*int Floyd()
{
for(int k=1;k<edge;k++)
for(int i=1;i<edge;i++)
{
for(int j=1;j<edge;j++)
if(m[i][j]>m[i][k]+m[k][j])
m[i][j]=m[i][k]+m[k][j];
}
return m[1][2];
}*/
int main()
{
char s[32],e[32];
int w;
map<string,int>ma;
while(scanf("%d",&n)!=EOF)
{
if(n==-1) break;
int st = 0;
ma.clear();
scanf("%s%s",s,e);
if(strcmp(s,e)==0) //这个地方别家continue,后台还没输数据呢
st = 1; for(int i = 0;i<N;i++)
{
for(int j = 0;j<N;j++)
{
if(i==j)
m[i][j] = 0;
else
m[i][j] = INF;
}
}
ma[s] = 1; ma[e] = 2;
edge = 3;
for(int i = 0;i<n;i++)
{
scanf("%s%s%d",s,e,&w);
if(ma[s]==0) ma[s] = edge++;
if(ma[e]==0) ma[e] = edge++;
if(w < m[ma[s]][ma[e]])
{ m[ma[s]][ma[e]] = w;
m[ma[e]][ma[s]] = w;
}
}
if(st==1)
{
printf("0\n");
continue;
}
int sum = Djistra();
if(sum<INF)
printf("%d\n",sum);
else
printf("-1\n");
}
return 0;
}
一位ACMer,是这样处理 字符转化数字。挺不错的
char str1[10005][40],str2[10005][40],str[10005][40];
int judge(char *p)
{
for(int i = 1;i<=f;++i)
if(!strcmp(str[i],p))
return i;
strcpy(str[++f],p);
return f;
}
for(int i = 1;i<=n;++i)
scanf("%s%s%d",str1[i],str2[i],&str3[i]);
for(int i = 1;i<=n;++i)
{
int x = judge(str1[i]);
int y = judge(str2[i]);
map[x][y] = map[y][x] = str3[i];
}
HDU 2112 HDU Today(STL MAP + Djistra)的更多相关文章
- HDU——2723Electronic Document Security(STL map嵌套set做法)
Electronic Document Security Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- HDU 2094 产生冠军(STL map)
产生冠军 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdu 4393 Throw nails(STL之优先队列)
Problem Description The annual school bicycle contest started. ZL is a student in this school. He is ...
- 2018 ICPC 徐州网络预赛 Features Track (STL map pair)
[传送门]https://nanti.jisuanke.com/t/31458 [题目大意]有N个帧,每帧有K个动作特征,每个特征用一个向量表示(x,y).两个特征相同当且仅当他们在不同的帧中出现且向 ...
- HDU 3567 Eight II(八数码 II)
HDU 3567 Eight II(八数码 II) /65536 K (Java/Others) Problem Description - 题目描述 Eight-puzzle, which is ...
- HDU 2457 DNA repair(AC自动机+DP)题解
题意:给你几个模式串,问你主串最少改几个字符能够使主串不包含模式串 思路:从昨天中午开始研究,研究到现在终于看懂了.既然是多模匹配,我们是要用到AC自动机的.我们把主串放到AC自动机上跑,并保证不出现 ...
- HDU 5723 Abandoned country(落后渣国)
HDU 5723 Abandoned country(落后渣国) Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 ...
- HDU 3016 Man Down (线段树+dp)
HDU 3016 Man Down (线段树+dp) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- HDU 3400 Line belt (三分再三分)
HDU 3400 Line belt (三分再三分) ACM 题目地址: pid=3400" target="_blank" style="color:rgb ...
随机推荐
- 《Java性能权威指南》笔记----Java性能调优工具
OS 1.CPU 用户态时间(us):cpu执行应用代码所占时间的百分比. 内核态时间(sy):cpu执行内核代码所占时间的百分比,系统态时间与应用相关. 空闲时间(id):cpu空闲时间百分比.空闲 ...
- MongoDB 查询语法
转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册:http://www.mongodb.org/di ...
- 【HDOJ5517】Triple(二维BIT)
题意:给你n个二元组<a,b>, m个三元组<c,d,e>. 如果d = e,那么<a,c,d>会组成一个新的三元组集合G. 问G中有多少个三元组在凸点.(没有其它 ...
- wap提交表单
原文发布时间为:2010-08-31 -- 来源于本人的百度文章 [由搬家工具导入] <%@ page contentType="text/vnd.wap.wml" page ...
- 使用T4模板创建一个例子
1.创建项目,添加新项,名称处填写Messages.tt,如下图: 添加后,Messages.tt文件内容如下: <#@ template debug="false" hos ...
- [LeetCode] Remove Nth Node From End of List 快慢指针
Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...
- 【Chrome】Octotree Chrome插件离线安装
插件下载地址:http://www.cnplugins.com/devtool/octotree/download.html Octotree 是国外程序员Buu Nguyen 做的一个 Chrome ...
- DNS解析过程详解【转】
转自:http://blog.chinaunix.net/uid-28216282-id-3757849.html 先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址www. ...
- 微信小程序 图片路径自动加上文件目录导致渲染报错问题
最近 在做小程序时候,发现一些商品图片在渲染时一直报错,也不显示,但是控制台打印出来 的路径却有没有问题 报错提示出错的路径会在前面自动加上“page/**”,思索了之后想到了微信只能解释https的 ...
- VS2017使用
1. 用了一段时间的layui,发现官网的升级的功能很好用,于是把自己本地项目的layui升级到的高版本.按照官网上的代码几乎一模一样,但是功能就是出不来,之后发现本地虽然是高版本但是生成的脚本依然是 ...