ZOJ 2750 Idiomatic Phrases Game(Dijkstra)
题意 : 给定一本字典,字典里有很多成语,要求从字典里的第一个成语开始,运用字典里的成语变到最后一个成语,变得过程就是成语接龙,后一个成语的第一个字必须有前一个成语的最后一个字相等,给定的成语是4位16进制位,每个成语前边跟的数字代表着找到这个成语之后再找到下个成语还需要t分钟 。
思路 :将所有的成语看成一个点,如果找到下一个成语,就建一条有向边,然后用dijkstra求最短路。

#include <iostream>
#include <stdio.h>
#include <string.h> using namespace std; struct node
{
char f[],b[] ;
int timee ;
} dicti[] ;
const int INF = ;
int edge[][] ;
int dist[] ;
int n ;
bool vis[] ;
char ch[] ; void dijkstra()
{
for(int i = ; i < n ; i++)
dist[i] = edge[][i],vis[i] = false ;
vis[] = true ;
dist[] = ;
for(int i = ; i < n- ; i++)
{
int minn = INF , u = ;
for(int j = ; j < n ; j++)
{
if(!vis[j] && dist[j] < minn)
{
u = j ;
minn = dist[j] ;
}
}
vis[u] = true ;
for(int j = ; j < n ; j++)
{
if(!vis[j] && dist[j] > dist[u]+edge[u][j])
dist[j] = dist[u]+edge[u][j] ;
}
}
}
int main()
{
while(~scanf("%d",&n) && n)
{
for(int i = ; i < n ; i++)
{
scanf("%d %s",&dicti[i].timee,ch) ;
int len = strlen(ch) ;
for(int k = ,j = len- ; k < ; j--, k++)
{
dicti[i].f[k] = ch[k] ;
dicti[i].b[-k] = ch[j] ;
}
dicti[i].f[] = dicti[i].b[] = '\0' ;
}
for(int i = ; i < n ; i++)
{
for(int j = ; j < n ; j++)
{
edge[i][j] = INF ;
if(i == j) continue ;
if(strcmp(dicti[i].b,dicti[j].f) == )
edge[i][j] = dicti[i].timee ;
}
}
dijkstra() ;
if(dist[n-] == INF) printf("-1\n") ;
else printf("%d\n",dist[n-]) ;
}
return ;
}
ZOJ 2750 Idiomatic Phrases Game(Dijkstra)的更多相关文章
- HDU - 1546 ZOJ - 2750 Idiomatic Phrases Game 成语接龙SPFA+map
Idiomatic Phrases Game Tom is playing a game called Idiomatic Phrases Game. An idiom consists of sev ...
- zoj 2750 Idiomatic Phrases Game
迪杰斯特拉单源最短路算法.对成语进行预处理.做出邻接矩阵即可. #include<cstdio> #include<cstring> #include<cmath> ...
- 迪杰斯特拉(dijkstra)算法的简要理解和c语言实现(源码)
迪杰斯特拉(dijkstra)算法:求最短路径的算法,数据结构课程中学习的内容. 1 . 理解 算法思想::设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合 ...
- 翻译《Writing Idiomatic Python》(五):类、上下文管理器、生成器
原书参考:http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/ 上一篇:翻译<Writing Idiomatic ...
- 翻译《Writing Idiomatic Python》(四):字典、集合、元组
原书参考:http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/ 上一篇:翻译<Writing Idiomatic ...
- 翻译《Writing Idiomatic Python》(三):变量、字符串、列表
原书参考:http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/ 上一篇:翻译<Writing Idiomatic ...
- 最短路径之迪杰斯特拉(Dijkstra)算法
迪杰斯特拉(Dijkstra)算法主要是针对没有负值的有向图,求解其中的单一起点到其他顶点的最短路径算法.本文主要总结迪杰斯特拉(Dijkstra)算法的原理和算法流程,最后通过程序实现在一个带权值的 ...
- 翻译《Writing Idiomatic Python》(一):if语句、for循环
开篇废话 这是在美国Amazon上评价很不错的一本书,其实严格来说这可能不算书,而是一本小册子.就像书名一样,里面的内容主要是用一些例子讲述地道的Python的代码是怎样写的.书中把很多例子用不良风格 ...
- 翻译《Writing Idiomatic Python》(二):函数、异常
原书参考:http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/ 上一篇:翻译<Writing Idiomatic ...
随机推荐
- 小学英语课文朗读APP开发笔记(一):创建Win7虚拟机
1 缘起 以小米盒子为代表的OTT机顶盒.智能电视的快速普及,快速推动了Android技术在机顶盒.智能电视领域的普及.既然都是用的Android操作系统,那么从技术上来说应该是大同小异的,当然和手机 ...
- 新建的linux虚拟机找不到eth0解决办法
新建的linux虚拟机通过 vi /etc/sysconfig/network-scripts/ifcfg-eth0进行配置: 再用ifconfig查看ip竟然没有eth0,只有lo和virbr0 其 ...
- 解决 Zabbix agent on [HOSTNAME] is unreachable for 5 minutes
今天中午发现zabbix陆续出现Zabbix agent on [HOSTNAME] is unreachable for 5 minutes问题,开始是只是寥寥几台,没太在意,吃了顿饭回来发现一大堆 ...
- openlayers wfs获取要素
var wfsProtocol = new OpenLayers.Protocol.WFS.v1_1_0({ url: mapServerUrl + "/wfs", feature ...
- 【html】【14】特效篇--侧边栏客服
实例参考: http://sc.chinaz.com/tag_jiaoben/zaixiankefu.html 代码: css @charset "utf-8"; ;;list-s ...
- javascript form 第22节
<html> <head> <title>Form对象</title> </style> <script type="tex ...
- 九度OJ 1024 畅通工程 -- 并查集、贪心算法(最小生成树)
题目地址:http://ac.jobdu.com/problem.php?pid=1024 题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但 ...
- RabbitMQ RPC问题
1.服务器端代码:https://github.com/rabbitmq/rabbitmq-tutorials/blob/master/python/rpc_server.py 2.客户端代码:htt ...
- Nginx+keepalived实现负载均衡
Nginx的优点是: 1.工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名.目录结构,它的正则规则比HAProxy更为强大和灵活,这也是它目前广泛流行的主要原因之一,Nginx ...
- 判断浏览器是否支持某个css属性
方法:直接判断浏览器是否支持某个CSS属性才是王道,document.documentElement.style 如:判断是否支持 transform if( 'MozTransform' in do ...