P1529 回家 Bessie Come Home

题目描述

现在是晚餐时间,而母牛们在外面分散的牧场中。 农民约翰按响了电铃,所以她们开始向谷仓走去。 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只最快的母牛)。 在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可能没有母牛。 每个牧场由一条条道路和一个或多个牧场连接(可能包括自己)。 有时,两个牧场(可能是字母相同的)之间会有超过一条道路相连。 至少有一个牧场和谷仓之间有道路连接。 因此,所有的母牛最后都能到达谷仓,并且母牛总是走最短的路径。 当然,母牛能向着任意一方向前进,并且她们以相同的速度前进。 牧场被标记为'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)。

输出格式:

单独的一行包含二个项目: 最先到达谷仓的母牛所在说明

翻译来自NOCOW

USACO 2.4

翻译来自NOCOW

USACO 2.4

分析:非常裸的一道最短路,因为最多只有52个牧场,所以可以想到用floyd算法,求出每个点之间的最短距离,在读取的时候如果发现重边则选长度最短的那条边即可,最后枚举一下粮仓到哪个点的距离最短即可,不过输入的时候要注意:输入的是字符,有可能将换行符读取进来,我的建议是用数组读取,在这里加上\n也是可以的.

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; int p,flag[210],map[210][210]; int main()
{
for (int i = 'A'; i <= 'z'; i++)
for (int j = 'A'; j <= 'z'; j++)
if (i != j)
map[i][j] = 100000000;
scanf("%d\n",&p);
for (int i = 1; i <= p; i++)
{
char a,b;
int c;
scanf("%c %c %d\n",&a,&b,&c);
if (a >= 'A' && a <= 'Z')
flag[a] = 1;
if (b >= 'A' && b <= 'Z')
flag[b] = 1;
map[a][b] = map[b][a] = min(c,map[a][b]);
}
for (int k = 'A'; k <= 'z'; k++)
for (int i = 'A'; i <= 'z'; i++)
for (int j = 'A'; j <= 'z'; j++)
map[i][j] = min(map[i][j],map[i][k] + map[k][j]);
int ans = 100000000;
char ans1;
for (int i = 'A'; i <= 'Y'; i++)
if (flag[i] && map[i]['Z'] < ans)
{
ans = map[i]['Z'];
ans1 = char(i);
}
printf("%c %d",ans1,ans); return 0;
}

洛谷P1529 回家 Bessie Come Home的更多相关文章

  1. 洛谷——P1529 回家 Bessie Come Home

    P1529 回家 Bessie Come Home 题目描述 现在是晚餐时间,而母牛们在外面分散的牧场中. 农民约翰按响了电铃,所以她们开始向谷仓走去. 你的工作是要指出哪只母牛会最先到达谷仓(在给出 ...

  2. 洛谷 P1529 回家 Bessie Come Home

    P1529 回家 Bessie Come Home 题目描述 现在是晚餐时间,而母牛们在外面分散的牧场中. 农民约翰按响了电铃,所以她们开始向谷仓走去. 你的工作是要指出哪只母牛会最先到达谷仓(在给出 ...

  3. 洛谷 P1529 回家 Bessie Come Home Label:Dijkstra最短路 && 乱搞

    题目描述 现在是晚餐时间,而母牛们在外面分散的牧场中. 农民约翰按响了电铃,所以她们开始向谷仓走去. 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只最快的母牛). 在挤奶 ...

  4. 洛谷 P2802 回家

    题目链接 https://www.luogu.org/problemnew/show/P2802 题目描述 小H在一个划分成了n*m个方格的长方形封锁线上. 每次他能向上下左右四个方向移动一格(当然小 ...

  5. 洛谷——2639[USACO09OCT]Bessie的体重问题Bessie's We…——01

    题目描述 Bessie像她的诸多姊妹一样,因为从Farmer John的草地吃了太多美味的草而长出了太多的赘肉.所以FJ将她置于一个及其严格的节食计划之中.她每天不能吃多过H (5 <= H & ...

  6. luogu P1529 回家 Bessie Come Home

    题目描述 现在是晚餐时间,而母牛们在外面分散的牧场中. 农民约翰按响了电铃,所以她们开始向谷仓走去. 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只最快的母牛). 在挤奶 ...

  7. 洛谷P3831 回家的路

    题目背景 SHOI2012 D2T1 题目描述 \(2046\) 年 \(OI\) 城的城市轨道交通建设终于全部竣工,由于前期规划周密,建成后的轨道交通网络由\(2n\)条地铁线路构成,组成了一个\( ...

  8. 洛谷—— P2802 回家

    P2802 回家 题目描述 小H在一个划分成了n*m个方格的长方形封锁线上. 每次他能向上下左右四个方向移动一格(当然小H不可以静止不动), 但不能离开封锁线,否则就被打死了. 刚开始时他有满血6点, ...

  9. 洛谷——P2639 [USACO09OCT]Bessie的体重问题Bessie's We…

    https://www.luogu.org/problem/show?pid=2639 题目描述 Bessie像她的诸多姊妹一样,因为从Farmer John的草地吃了太多美味的草而长出了太多的赘肉. ...

随机推荐

  1. ubuntu双网卡bonding配置(转)

    1.安装软件 apt-get install ifenslave 2.修改配置文件 /etc/network/interfaces auto lo iface lo inet loopback ifa ...

  2. RAC_Oracle集群服务安装RAC(案例)

    2015-01-23 Created By BaoXinjian Thanks and Regards

  3. Form_Form Builder Export导出为Excel(案例)

    2014-01-09 Created By BaoXinjian  

  4. set_union的几个例子

    获得两个集合的并集.两个输入序列须保证已排好序. 数组用的时候 // set_union example #include <iostream> #include <algorith ...

  5. Visual Stadio 2015创建WebApplication应用和运行赏析

    专题图: 1,创建一个WebApplication应用 2,项目结构和布局  3,运行项目 作者:ylbtech出处:http://ylbtech.cnblogs.com/本文版权归作者和博客园共有, ...

  6. PHP解析JSON和XML方法

    一.JSON $r = json_decode("json数据"); $result = $r->result; //解析后的数据,以数组形式保存到r里面了,需要通过-> ...

  7. Protobuf从安装到配置整理帖

    新做的Mini项目计划使用Google的Protobuf来做,关于Protobuf是什么玩意能干什么请自己去看这里:http://code.google.com/p/protobuf/ 这里讲一下安装 ...

  8. css 选择器优先级的计算过程

    以下转自互联网 下面看看官方对选择器的定义:一个选择器的优先级由四个数字a,b,c,d确定.当比较两个选择器时,先比较a,a值大的优先级高,如果a相等则比较b,b值大的优先级高,以此类推.因此,无论b ...

  9. dede织梦列表页如何调用全站子栏目

    网站原代码:{dede:channel type='son'} <a href="[field:typelink/]">[field:typename/]</a& ...

  10. [ActionScript 3.0] AS3.0 获取文本的明暗度

    /** * 获取文字的明暗值 * @param t 文字 * @return Number */ function getDensity(t:String):Number { var ttf:Text ...