USER: Kevin Samuel [kevin_s1]
TASK: comehome
LANG: C++ Compiling...
Compile: OK Executing...
Test 1: TEST OK [0.003 secs, 3376 KB]
Test 2: TEST OK [0.005 secs, 3376 KB]
Test 3: TEST OK [0.005 secs, 3376 KB]
Test 4: TEST OK [0.005 secs, 3376 KB]
Test 5: TEST OK [0.011 secs, 3376 KB]
Test 6: TEST OK [0.019 secs, 3376 KB]
Test 7: TEST OK [0.035 secs, 3376 KB]
Test 8: TEST OK [0.005 secs, 3376 KB]
Test 9: TEST OK [0.008 secs, 3376 KB] All tests OK. YOUR PROGRAM ('comehome') WORKED FIRST TIME! That's fantastic
-- and a rare thing. Please accept these special automated congratulations. very easy, it's a shortest path problem 建图时直接以A-Z和a-z作为节点建图,我用了一个简单的Dijkstra算法,从Z 点反向找近期的点
/*
ID:kevin_s1
PROG:comehome
LANG:C++
*/ #include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <cstdlib>
#include <list>
#include <cmath> using namespace std; #define MAXN 53
#define INF 99999 //gobal variable==== int P;
int Graph[MAXN][MAXN];
int result;
int Dist[MAXN]; int visited[MAXN];
//================== //function==========
int Convert(char ch){
int index = -1;
if(ch >= 'A' && ch <= 'Z'){
index = ch - 'A' + 1;
}
else if(ch >= 'a' && ch <= 'z'){
index = ch - 'a' + 27;
}
else
index = -1;
return index;
} int Dijkstra(int v0){
int min;
int k;
//init
for(int i = 1; i < MAXN; i++){
visited[i] = false;
Dist[i] = Graph[v0][i];
}
Dist[v0] = 0;
visited[v0] = 1;
for(int v = 1; v < MAXN; v++){
min = INF;
for(int w = 1; w < MAXN; w++){
if(!visited[w] && (Dist[w] < min)){
min = Dist[w];
k = w;
}
}
visited[k] = 1;
for(int w = 1; w < MAXN; w++){
if(!visited[w] && (min + Graph[k][w] < Dist[w])){
Dist[w] = min + Graph[k][w];
}
}
}
int Min = INF;
for(int i = 1; i < MAXN; i++){
if(Dist[i] < Min && i >= 1 && i <= 26 && Dist[i] > 0){
Min = Dist[i];
result = i;
}
}
return Min;
} //================== int main(){
freopen("comehome.in","r",stdin);
freopen("comehome.out","w",stdout);
cin>>P; for(int i = 1; i < MAXN; i++){
Graph[i][i] = INF;
for(int j = 1; j < MAXN; j++){
Graph[i][j] = INF;
}
}
memset(visited, 0, sizeof(visited));
while(P--){
char chst, chen;
int dist;
cin>>chst>>chen>>dist;
int st = Convert(chst);
int en = Convert(chen);
if(dist < Graph[st][en]){
Graph[st][en] = dist;
Graph[en][st] = dist;
}
}
int ans = Dijkstra(26);
char chfarm = 'A' + result - 1;
cout<<chfarm<<" ";
cout<<ans<<endl;
return 0;
}

USACO comehome Dijkstra的更多相关文章

  1. Cogs 309. [USACO 3.2] 香甜的黄油 dijkstra,堆,最短路,floyd

    题目:http://cojs.tk/cogs/problem/problem.php?pid=309 309. [USACO 3.2] 香甜的黄油 ★★   输入文件:butter.in   输出文件 ...

  2. cogs 176. [USACO Feb07] 奶牛聚会 dijkstra

    176. [USACO Feb07] 奶牛聚会 ★☆   输入文件:sparty.in   输出文件:sparty.out   简单对比时间限制:3 s   内存限制:16 MB 译: zqzas N ...

  3. cogs 397. [USACO Oct09] 热浪 Dijkstra

    397. [USACO Oct09] 热浪 ★☆   输入文件:heatwvx.in   输出文件:heatwvx.out   简单对比时间限制:1 s   内存限制:128 MB 德克薩斯純樸的民眾 ...

  4. USACO 2008 January Silver Telephone Lines /// 二分最短路 邻接表dijkstra oj22924

    题目大意: 一共有N (1 ≤ N ≤ 1,000)个电线杆,有P P (1 ≤ P ≤ 10,000)对电线杆是可以连接的, 用几条线连接在一起的电线杆之间都可相互通信,现在想要使得电线杆1和电线杆 ...

  5. 【USACO 2.4 】Bessie Come Home

    题意:给出n条有权的双向边(10000),求到达Z最近的大写字母,及其距离. 题解:即求Z出发的最短路,用dijstra就可以了,注意边要开到20000以上. /* TASK: comehome LA ...

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

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

  7. TYVJ P1031 热浪 Label:dijkstra 最短路

    背景 USACO OCT09 9TH 描述 德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅长生產富含奶油的乳製品.Farmer John此时以先 ...

  8. 8.8-8.10 usaco

    summary:44 没救了...整天刷水迟早药丸! ❤bzoj3892: 区间dp.我原来的思路是dp[i][j]表示前i个数跳过了j次,那么转移可以前k个数转移了j-1次,枚举k就好了,但是这样是 ...

  9. usaco silver

    大神们都在刷usaco,我也来水一水 1606: [Usaco2008 Dec]Hay For Sale 购买干草   裸背包 1607: [Usaco2008 Dec]Patting Heads 轻 ...

随机推荐

  1. [置顶] Ftp客户端概要设计

    Ftp客户端概要设计 1.概述 ftp是基于TCP的文件传输协议,主要是用于控制远程文件,如下载.上传.续传.重命名.删除等.其命令是基于可见字符,易于理解的方式交互的.客户端与服务器端的交互遵循一应 ...

  2. ARP欺骗,骗你没商量

    今天BOSS让我总结ARP欺骗的原理和防范策略,在这里把总结的结果贴出来吧.求人品,求速转正. ARP原理: 在局域网内部,各主机之间以MAC地址作为标识通信对象的标志.然而,有时通信发起的主机并不知 ...

  3. Android本地视频播放器开发--视频解码

    在上一章Android本地视频播放器开发--SDL编译编译中编译出sdl的支持库,当时我们使用的2.0,但是有些api被更改了,所以在以下的使用者中我们使用SDL1.3的库,这个库我会传上源码以及编译 ...

  4. POJ 1160 Post Office (动态规划)

    Post Office Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 15412   Accepted: 8351 Desc ...

  5. iOS_时间相关

    计算两个时间之差,并以倒计时的方式显示: 比如:剩余XX天XX小时XX分XX秒 效果图例如以下: NSDate的分类: 使用场景: watermark/2/text/aHR0cDovL2Jsb2cuY ...

  6. c++(重载、覆盖、隐藏)

    源地址:http://www.cnblogs.com/qlee/archive/2011/07/04/2097055.html 成员函数的重载.覆盖与隐藏成员函数的重载.覆盖(override)与隐藏 ...

  7. poj3468 A Simple Problem with Integers(线段树模板 功能:区间增减,区间求和)

    转载请注明出处:http://blog.csdn.net/u012860063 Description You have N integers, A1, A2, ... , AN. You need ...

  8. Delphi中编写无输出函数名的DLL文件(有点意思)(400多篇博客)

    用 Delphi 用长了,总是发现,有些和 MS 不同的地方.例如,MS 的公开库中,常常隐藏了许多重要函数,这些函数在系统中常常有起着非常巨大的作用.一旦知道如何调用,可以给自己的应用程序提供很强的 ...

  9. Java---25---集合框架共性方法

    集合类 为什么会出现集合类 面向对象语言对事物的体现都是以对象的形式,所以为了方便对较多个对象的操作,就对对象进行存储,集合就是存储对象最经常使用的一种方式 数组和集合类同一时候容器,有何不同? 数组 ...

  10. 正确理解HTML,XHTML页面的头部doctype定义

    摘自http://www.west263.com/info/html/wangyezhizuo/css/20080225/42390.html 当我们制作页面的时候,总会在它的源代码头部看到一串声明, ...