博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZOJ 2750 Idiomatic Phrases Game(Dijkstra)
阅读量:5139 次
发布时间:2019-06-13

本文共 1906 字,大约阅读时间需要 6 分钟。

题意 : 给定一本字典,字典里有很多成语,要求从字典里的第一个成语开始,运用字典里的成语变到最后一个成语,变得过程就是成语接龙,后一个成语的第一个字必须有前一个成语的最后一个字相等,给定的成语是4位16进制位,每个成语前边跟的数字代表着找到这个成语之后再找到下个成语还需要t分钟 。

思路 :将所有的成语看成一个点,如果找到下一个成语,就建一条有向边,然后用dijkstra求最短路。

 

 

#include 
#include
#include
using namespace std;struct node{ char f[5],b[5] ; int timee ;} dicti[1010] ;const int INF = 999999999 ;int edge[1010][1010] ;int dist[1010] ;int n ;bool vis[1010] ;char ch[1010] ;void dijkstra(){ for(int i = 0 ; i < n ; i++) dist[i] = edge[0][i],vis[i] = false ; vis[0] = true ; dist[0] = 0 ; for(int i = 0 ; i < n-1 ; i++) { int minn = INF , u = 0 ; for(int j = 0 ; j < n ; j++) { if(!vis[j] && dist[j] < minn) { u = j ; minn = dist[j] ; } } vis[u] = true ; for(int j = 0 ; 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 = 0 ; i < n ; i++) { scanf("%d %s",&dicti[i].timee,ch) ; int len = strlen(ch) ; for(int k = 0 ,j = len-1 ; k < 4 ; j--, k++) { dicti[i].f[k] = ch[k] ; dicti[i].b[3-k] = ch[j] ; } dicti[i].f[4] = dicti[i].b[4] = '\0' ; } for(int i = 0 ; i < n ; i++) { for(int j = 0 ; j < n ; j++) { edge[i][j] = INF ; if(i == j) continue ; if(strcmp(dicti[i].b,dicti[j].f) == 0) edge[i][j] = dicti[i].timee ; } } dijkstra() ; if(dist[n-1] == INF) printf("-1\n") ; else printf("%d\n",dist[n-1]) ; } return 0;}
View Code

 

转载于:https://www.cnblogs.com/luyingfeng/p/3633615.html

你可能感兴趣的文章
Deque - leetcode 【双端队列】
查看>>
gulp插件gulp-ruby-sass和livereload插件
查看>>
免费的大数据学习资料,这一份就足够
查看>>
clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeight
查看>>
企业级应用与互联网应用的区别
查看>>
itext jsp页面打印
查看>>
Perl正则表达式匹配
查看>>
DB Change
查看>>
nginx --rhel6.5
查看>>
Eclipse Python插件 PyDev
查看>>
selenium+python3模拟键盘实现粘贴、复制
查看>>
网站搭建(一)
查看>>
Spring JDBCTemplate
查看>>
Radon变换——MATLAB
查看>>
Iroha and a Grid AtCoder - 1974(思维水题)
查看>>
gzip
查看>>
转负二进制(个人模版)
查看>>
LintCode-Backpack
查看>>
查询数据库锁
查看>>
[LeetCode] Palindrome Number
查看>>