hdu1546+spfa
来源:互联网 发布:python设计模式 pdf 编辑:程序博客网 时间:2024/06/16 13:46
没啥好讲的,直接构图就是。
#include<cstdio>#include<cstring>#include<vector>#include<queue>using namespace std;char str[1100][110];int sw[1100],n;const int inf=1<<30;struct node{ int v,w; node(int vv,int ww):v(vv),w(ww){} node(){}};vector<vector<node> > g;int dist[1100],vis[1100];void spfa(){ int i; for(i=0;i<n;i++) { dist[i]=inf; vis[i]=0; } dist[0]=0; queue<int> q; q.push(0); vis[0]=1; while(!q.empty()) { int z=q.front(); for(i=0;i<g[z].size();i++) { int v2=g[z][i].v; if(dist[z]+g[z][i].w<dist[v2]) { dist[v2]=dist[z]+g[z][i].w; if(!vis[v2]) { q.push(v2); vis[v2]=1; } } } q.pop(); vis[z]=0; }}int main(){ int i,j,k1,k2; while(scanf("%d",&n)!=EOF&&n!=0) { for(i=0;i<n;i++) scanf("%d %s",&sw[i],str[i]); g.clear(); g.resize(1100); for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(i!=j) { int len=strlen(str[i]); for(k1=0,k2=len-4;k1<4&&k2<len;k1++,k2++) { if(str[i][k2]!=str[j][k1]) break; } if(k1>=4) g[i].push_back(node(j,sw[i])); } } } //以上均为构图 spfa(); if(dist[n-1]>=inf) printf("-1\n"); else printf("%d\n",dist[n-1]); } return 0;}
0 0
- hdu1546+spfa
- hdu1546(最短路SPFA+priority_queue)
- HDU1546-Idiomatic Phrases Game(SPFA)
- hdu1546—Idiomatic Phrases Game(spfa)
- hdu1546 dijkstra
- hdu1546-Idiomatic Phrases Gamehttp
- HDU1546:Idiomatic Phrases Game(Dijkstra)
- HDU1546:Idiomatic Phrases Game(Dijkstra)
- SPFA
- spfa
- spfa
- SPFA
- SPFA
- SPFA
- SPFA
- spfa
- SPFA
- SPFA
- hdu1245+dij,堆优化
- 原型图发布到外网
- uva 11078
- C++ 事件对象 多线程同步互斥
- 冒泡算法的实现(java)
- hdu1546+spfa
- java.lang.OutOfMemoryError异常解决方法
- Spring基础知识(9)-事务管理
- 2016-AspNet-MVC教学-11-Json-getJSON-Ajax的应用对比Demo
- uva 11549
- ListView中的Button点击设置
- 关于MVVM设计模式
- Android Studio你不知道的调试技巧
- hdu2923+floyd