洛谷 P1529 回家 Bessie Come Home Label:Dijkstra最短路 乱搞
题目描述
现在是晚餐时间,而母牛们在外面分散的牧场中。 农民约翰按响了电铃,所以她们开始向谷仓走去。 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只最快的母牛)。 在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可能没有母牛。 每个牧场由一条条道路和一个或多个牧场连接(可能包括自己)。 有时,两个牧场(可能是字母相同的)之间会有超过一条道路相连。 至少有一个牧场和谷仓之间有道路连接。 因此,所有的母牛最后都能到达谷仓,并且母牛总是走最短的路径。 当然,母牛能向着任意一方向前进,并且她们以相同的速度前进。 牧场被标记为'a'..'z'和'A'..'Y',在用大写字母表示的牧场中有一只母牛,小写字母中则没有。 谷仓的标记是'Z',注意没有母牛在谷仓中。
注意'm'和'M'不是同一个牧场 否则错误 上面的意思是说:输入数据中可能会同时存在M,m(郁闷ing)(PS:表郁闷…告诉我set of咋用就不郁闷了…),比如
M a a m m z
输入输出格式
输入格式:
第 1 行: 整数 P(1<= P<=10000),表示连接牧场(谷仓)的道路的数目。
第 2 ..P+1行: 用空格分开的两个字母和一个整数:
被道路连接牧场的标记和道路的长度(1<=长度<=1000)。
输出格式:
单独的一行包含二个项目: 最先到达谷仓的母牛所在的牧场的标记,和这只母牛走过的路径的长度。
输入输出样例
5 A d 6 B d 3 C e 9 d Z 8 e Z 3
B 11
说明
翻译来自NOCOW
USACO 2.4
代码
1 #include<algorithm> 2 #include<iostream> 3 #include<cstring> 4 #include<cstdio> 5 #include<vector> 6 #include<queue> 7 #include<map> 8 #define MAXN 30005 9 #define INF 0x3f3f3f3f 10 using namespace std; 11 12 map<char,int> m; 13 vector<int> G[MAXN],c[MAXN]; 14 int M,dis[MAXN],vis[MAXN]; 15 16 struct cc{int num,d;}; 17 cc make(int num,int d){cc a;a.num=num;a.d=d;return a;} 18 struct cmp{bool operator()(cc a,cc b){return a.d>b.d;}}; 19 int trans(char a){return m[a];} 20 21 void init_(){ 22 int j=1; for(char i='a';i<='z';i++,j++){m[i]=j;} 23 j=30; for(char i='A';i<='Z';i++,j++){m[i]=j;} 24 scanf("%d",&M); 25 26 for(int i=1;i<=M;i++){ 27 char a,b;int w;//格式化输入??? 28 cin>>a>>b>>w; 29 G[trans(a)].push_back(trans(b));c[trans(a)].push_back(w); 30 G[trans(b)].push_back(trans(a));c[trans(b)].push_back(w); 31 } 32 } 33 34 35 void Dijkstra(){ 36 priority_queue<cc,vector<cc>,cmp> q; 37 memset(dis,0x3f,sizeof(dis)); 38 int s=trans('Z'); 39 dis[s]=0;q.push(make(s,0)); 40 while(!q.empty()){ 41 int x=q.top().num;q.pop(); 42 if(vis[x]) continue;vis[x]=1; 43 // puts("@"); 44 for(int i=0;i<G[x].size();i++){ 45 int to=G[x][i]; 46 if(dis[x]+c[x][i]<dis[to]){ 47 dis[to]=dis[x]+c[x][i]; 48 q.push(make(to,dis[to])); 49 } 50 } 51 } 52 } 53 54 void work(){ 55 Dijkstra(); 56 char ans_num;int ans_step=INF; 57 58 for(char i='A';i<'Z';i++) 59 if(dis[trans(i)]<ans_step) 60 ans_num=i,ans_step=dis[trans(i)]; 61 62 cout<<ans_num<<" "<<ans_step<<endl; 63 } 64 65 int main(){ 66 // freopen("01.in","r",stdin);//freopen("01.out","w",stdout); 67 68 init_(); 69 work(); 70 71 fclose(stdin);fclose(stdout);return 0; 72 }回顾了一下 最短路+map 的神奇组合
转载于:https://www.cnblogs.com/radiumlrb/p/6048897.html
洛谷 P1529 回家 Bessie Come Home Label:Dijkstra最短路 乱搞相关推荐
- 洛谷 P3003 [USACO10DEC]苹果交货Apple Delivery dijkstra 最短路
题目链接: https://www.luogu.org/problem/P3003 思路: 1:最短路水题,dijkstra AC 2:spfa 10个测试点过8个,2个TLE 代码: 1:dijks ...
- 洛谷:P2832 行路难(堆优化Dijkstra(错解)bfs(正解) + 记录路径)
洛谷:P2832 行路难 写这道题确实是行路难- 此题的最短路约束不只是边权,还有边数(每经过一条边,之后经过的边权值都 +1+1+1 ) 从期望的角度分析,我们肯定是想 尽可能走的路程越短,走得路径 ...
- 洛谷P1027 Car的旅行路线 计算几何 图论最短路
题意 求某城到某城的最小花费 一个城中有四个机场,一个城中的机场相互可达,用公路到达,但是不同城的公路的单位路程的 费不同,两个不同城的机场(我不知道相同城可不可以)可以通过机场到达,且飞机单位路程价 ...
- 洛谷 - P4009 汽车加油行驶问题(分层图最短路/最小费用最大流)
题目链接:点击查看 题目大意:给出一个n*n的矩阵表示道路,途中有一些加油站,现在要从点(1,1)到达点(n,n),问最小花费,其中的一些规则如下: 汽车只能沿着网格边行驶,装满油后可以行驶K条边,出 ...
- 【洛谷1339 [USACO09OCT]】热浪Heat Wave 图论+最短路
AC代码 #include<bits/stdc++.h> using namespace std; const int MAXN=62000+10,INF=999999; struct E ...
- 洛谷 - 试炼场(全部题目备份)
整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...
- 洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game
洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game 题目描述 Bessie is playing a number game against Farmer John, ...
- 洛谷 P4175: bzoj 1146: [CTSC2008]网络管理
令人抓狂的整体二分题.根本原因还是我太菜了. 在学校写了一个下午写得头晕,回家里重写了一遍,一个小时就写完了--不过还是太慢. 题目传送门:洛谷P4175. 题意简述: 一棵 \(n\) 个结点的树, ...
- 洛谷2055 [ZJOI2009]假期的宿舍
题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识. ...
最新文章
- 云朵机(人造云朵,造云机)用在互动百科推搜索新方法中(转)
- 2020-11-18(如何打开.jar工具)
- 上验证cudnn是否安装成功_windows和linux上的tensorflow安装(极简安装方法)
- SAP CRM WebClient UI cross component跳转的一个具体例子
- Html转快应用方法,卡片跳转快应用指定页面,如何点返回直接退出快应用回到卡片...
- 29岁女程序员感慨:硕士学历,脱单比找工作买房还难,有同感么?
- Spring : @EnableConfigurationProperties注解
- 检测商品简码是否唯一,不重复
- 怀才当遇网—毕业季 | 你总说毕业遥遥无期,转眼就各奔东西
- P1828 香甜的黄油 (spfa)
- 如何保障“双11”期间亿万买家和卖家愉快地聊天
- 用友ERP-NC系统 NCFindWeb接口文件读取
- exoplayer和mediaplayer的封装
- 数据库——sql-server
- Could not load file ‘/etc/sysconfig/network-scripts/ifcfg-lo‘
- JSP高校信息管理系统myeclipse开发sql数据库web结构计算机java编程
- vue组件化的理解与定义
- LeetCode刷题复盘笔记—一文搞懂0 - 1背包之494. 目标和问题(动态规划系列第九篇)
- 关于封包工具一上午的研究总结
- maven依赖本地宝