1. USER: Kevin Samuel [kevin_s1]
  2. TASK: comehome
  3. LANG: C++
  4.  
  5. Compiling...
  6. Compile: OK
  7.  
  8. Executing...
  9. Test 1: TEST OK [0.003 secs, 3376 KB]
  10. Test 2: TEST OK [0.005 secs, 3376 KB]
  11. Test 3: TEST OK [0.005 secs, 3376 KB]
  12. Test 4: TEST OK [0.005 secs, 3376 KB]
  13. Test 5: TEST OK [0.011 secs, 3376 KB]
  14. Test 6: TEST OK [0.019 secs, 3376 KB]
  15. Test 7: TEST OK [0.035 secs, 3376 KB]
  16. Test 8: TEST OK [0.005 secs, 3376 KB]
  17. Test 9: TEST OK [0.008 secs, 3376 KB]
  18.  
  19. All tests OK.
  20.  
  21. YOUR PROGRAM ('comehome') WORKED FIRST TIME! That's fantastic
  22. -- and a rare thing. Please accept these special automated
  23.  
  24. congratulations.
  25.  
  26. very easy, it's a shortest path problem
  27.  
  28. 建图时直接以A-Za-z作为节点建图,我用了一个简单的Dijkstra算法,从Z 点反向找近期的点
  29.  
  30.  
  31. /*
  32. ID:kevin_s1
  33. PROG:comehome
  34. LANG:C++
  35. */
  36. #include <iostream>
  37. #include <cstdio>
  38. #include <string>
  39. #include <cstring>
  40. #include <vector>
  41. #include <map>
  42. #include <set>
  43. #include <algorithm>
  44. #include <cstdlib>
  45. #include <list>
  46. #include <cmath>
  47. using namespace std;
  48. #define MAXN 53
  49. #define INF 99999
  50. //gobal variable====
  51. int P;
  52. int Graph[MAXN][MAXN];
  53. int result;
  54. int Dist[MAXN];
  55. int visited[MAXN];
  56. //==================
  57. //function==========
  58. int Convert(char ch){
  59. 	int index = -1;
  60. 	if(ch >= 'A' && ch <= 'Z'){
  61. 		index = ch - 'A' + 1;
  62. 	}
  63. 	else if(ch >= 'a' && ch <= 'z'){
  64. 		index = ch - 'a' + 27;
  65. 	}
  66. 	else
  67. 		index = -1;
  68. 	return index;
  69. }
  70. int Dijkstra(int v0){
  71. 	int min;
  72. 	int k;
  73. 	//init
  74. 	for(int i = 1; i < MAXN; i++){
  75. 		visited[i] = false;
  76. 		Dist[i] = Graph[v0][i];
  77. 	}
  78. 	Dist[v0] = 0;
  79. 	visited[v0] = 1;
  80. 	for(int v = 1; v < MAXN; v++){
  81. 		min = INF;
  82. 		for(int w = 1; w < MAXN; w++){
  83. 			if(!visited[w] && (Dist[w] < min)){
  84. 				min = Dist[w];
  85. 				k = w;
  86. 			}
  87. 		}
  88. 		visited[k] = 1;
  89. 		for(int w = 1; w < MAXN; w++){
  90. 			if(!visited[w] && (min + Graph[k][w] < Dist[w])){
  91. 				Dist[w] = min + Graph[k][w];
  92. 			}
  93. 		}
  94. 	}
  95. 	int Min = INF;
  96. 	for(int i = 1; i < MAXN; i++){
  97. 		if(Dist[i] < Min && i >= 1 && i <= 26 && Dist[i] > 0){
  98. 			Min = Dist[i];
  99. 			result = i;
  100. 		}
  101. 	}
  102. 	return Min;
  103. }
  104. //==================
  105. int main(){
  106. 	freopen("comehome.in","r",stdin);
  107. 	freopen("comehome.out","w",stdout);
  108. 	cin>>P;
  109. 	for(int i = 1; i < MAXN; i++){
  110. 		Graph[i][i] = INF;
  111. 		for(int j = 1; j < MAXN; j++){
  112. 			Graph[i][j] = INF;
  113. 		}
  114. 	}
  115. 	memset(visited, 0, sizeof(visited));
  116. 	while(P--){
  117. 		char chst, chen;
  118. 		int dist;
  119. 		cin>>chst>>chen>>dist;
  120. 		int st = Convert(chst);
  121. 		int en = Convert(chen);
  122. 		if(dist < Graph[st][en]){
  123. 			Graph[st][en] = dist;
  124. 			Graph[en][st] = dist;
  125. 		}
  126. 	}
  127. 	int ans = Dijkstra(26);
  128. 	char chfarm = 'A' + result - 1;
  129. 	cout<<chfarm<<" ";
  130. 	cout<<ans<<endl;
  131. 	return 0;
  132. }

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. script:查看redo产生的历史信息

    script:查看redo产生的历史信息 SQL> alter session set nls_date_format='dd-mon-yy'; SQL>  set lines 160 p ...

  2. Cocos2d-x layout (二)

    相对某个控件进行布局 Size widgetSize = Director::getInstance()->getWinSize(); Text* alert = Text::create(&q ...

  3. OpenJDK1.8.0 源码解析————HashMap的实现(二)

    上一篇文章介绍了HashMap的一部分的知识,算是为下面HashMap的进一步学习做准备吧. 然后写的时候一直在思考的一个问题是,这方面的知识网上的资料也是一抓一大把,即使是这样我为什么还要花费时间去 ...

  4. web desktop在线演示

    http://mydesk.sinaapp.com 基于extjs的web desktop应用框架. 1.跨浏览器 2.动态载入所需css,js文件 3.权限管理 4.支持多语种 5.支持asp,js ...

  5. [Android学习笔记]Android Library Project的使用

    RT http://developer.android.com/tools/projects/index.html

  6. 在HTML中如何隐藏某段文字具体该怎么实现

    <p style="display:none;"> 需要隐藏的文字....... </p> <div style="display:none ...

  7. gant

    http://gant.github.io/ http://gant.codehaus.org/

  8. shell脚本查看网络配置

    #!/bin/bash ifconfig|grep -E 'eth|inet'|grep -Ev '(inet6|127.0.0.1)'|sed 's/ /\n/g'|awk NF|grep -Ev ...

  9. NET之全平台一体化

    NET之全平台一体化的体验 一.前言 近来利用空闲时间研究了一下Xamarin的技术,想想既然提供了如此好的支持,就该尝试一切可能,来一个”大小通吃“. 何为全平台:APP包括Android.IOS. ...

  10. hdu1281+hdu2819(最大匹配数)

    分析:将行和列缩点,即行对应二分图的X部,列对应二分图的Y部,然后交点为连接该行和该列的一条边.匹配时每点都会把整行整列占了,因此就不会出现冲突了. 传送门:hdu1281 棋盘游戏 #include ...