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. oracle学习笔记(一)配置监听

    服务器端: 监听器   lsnrctl 启动监听 lsnrctl start [LISTENER] 查看监听 lsnrctl  status  或者  lsnrctl  service C:\Docu ...

  2. mongoVUE对mongodb常用的基础操作

    一.    连接mongodb服务端: 1.         双击mongoVUE,进入如下图所示界面: 2.         点击上图中的“+”,出现如下图,输入要连接的mongodb服务器的ip. ...

  3. 黄聪:异步加载JS的4种方式(详解)

    方案1:$(document).ready <!DOCTYPE html> <html> <head> <script src="http://co ...

  4. hadoop-spark-hive-hbase配置相关说明

    1. zookeeper 配置 cp app/ochadoop-och3.0.0-SNAPSHOT/zookeeper-3.4.5-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/ ...

  5. Form_Form Builder编译fmb/library/menu方式总结(汇总)

    2014-12-27 Created By BaoXinjian

  6. [MySQL] 字符集的选择

    1. Mysql支持的字符集 MySQL服务器可以支持多种字符集,不同的字段都可以使用不同的字符集. 查看所有可用字符集: show character set; select * from info ...

  7. Axis2/c 知识点

    官网文档:  http://axis.apache.org/axis2/c/core/docs/axis2c_manual.html 从文档中可以总结出: 1. Axis2/C是一个用C语言实现的We ...

  8. netty中LengthFieldBasedFrameDecoder的使用

    在org.jboss.netty.handler.codec.frame包中,有LengthFieldBasedFrameDecoder类用来解析带有长度属性的包,只要我们在传输协议中加入包的总长度就 ...

  9. async callback z

    public class StackOverflow_5979252 { [ServiceContract(Name = "IMessageCallback")] public i ...

  10. c# WMI获取机器硬件信息(硬盘,cpu,内存等)

    using System; using System.Collections.Generic; using System.Globalization; using System.Management; ...