1. #include <iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cmath>
  5. #include<queue>
  6. #define N 110
  7. #define INF 0x7ffffff
  8. using namespace std;
  9. int n,val[N],mp[N][N],d[N],v[N],num[N],r[N][N];
  10. void floyd()
  11. {
  12. for(int k=;k<=n;k++)
  13. for(int i=;i<=n;i++)
  14. for(int j=;j<=n;j++)
  15. r[i][j]=max(r[i][j],r[i][k]&r[k][j]);
  16. }
  17. int spfa(int s,int t)
  18. {
  19. for(int i=;i<=n;i++)
  20. {
  21. num[i]=;
  22. d[i]=-INF;
  23. v[i]=;
  24. }
  25. queue<int> q;
  26. q.push(s);
  27. v[s]=;
  28. d[s]=;
  29. num[s]++;
  30. while(!q.empty())
  31. {
  32. int c=q.front();
  33. q.pop();
  34. v[c]=;
  35. for(int i=;i<=n;i++)
  36. {
  37. if(d[c]+mp[c][i]>&&d[i]<d[c]+mp[c][i])
  38. {
  39. d[i]=d[c]+mp[c][i];
  40. if(!v[i])
  41. {
  42. if(++num[i]>=n) return r[i][t];
  43. v[i]=,q.push(i);
  44. }
  45. }
  46. }
  47. }
  48. if(d[t]>) return ;
  49. return ;
  50. }
  51. int main()
  52. {
  53. while(~scanf("%d",&n)&&n!=-)
  54. {
  55. memset(mp,,sizeof(mp));
  56. memset(r,,sizeof(r));
  57. for(int i=;i<=n;i++)
  58. {
  59. int nn;
  60. scanf("%d%d",&val[i],&nn);
  61. for(int j=;j<nn;j++)
  62. {
  63. int c;
  64. scanf("%d",&c);
  65. mp[i][c]=;
  66. r[i][c]=;
  67. }
  68. }
  69. for(int i=;i<=n;i++)
  70. for(int j=;j<=n;j++)
  71. {
  72. if(mp[i][j]==) mp[i][j]=-INF;
  73. else mp[i][j]*=val[j];
  74. }
  75. floyd();
  76. if(spfa(,n)) cout<<"winnable"<<endl;
  77. else cout<<"hopeless"<<endl;
  78. }
  79. }

最短路之SPFA(单源)HDU 1317的更多相关文章

  1. spfa 单源最短路究极算法

    学习博客链接:SPFA 求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm.     SPFA算法是西南交通大学段凡丁于1994年发表的.    从名字我 ...

  2. SPFA单源最短路径算法

    我们用数组d记录每个结点的最短路径估计值,而且用邻接表来存储图G.我们采取的方法是动态逼近法:设立一个先进先出的队列用来保存待优化的结点,优化时每次取出队首结点u,并且用u点当前的最短路径估计值对离开 ...

  3. 最短路模板(Dijkstra & Dijkstra算法+堆优化 & bellman_ford & 单源最短路SPFA)

    关于几个的区别和联系:http://www.cnblogs.com/zswbky/p/5432353.html d.每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个(草儿家到 ...

  4. 【算法】单源最短路——Dijkstra

    对于固定起点的最短路算法,我们称之为单源最短路算法.单源最短路算法很多,最常见的就是dijkstra算法. dijkstra主要用的是一种贪心的思想,就是说如果i...s...t...j是最短路,那么 ...

  5. HDU 5637 Transform 单源最短路

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5637 题意: http://bestcoder.hdu.edu.cn/contests/contes ...

  6. 用scheme语言实现SPFA算法(单源最短路)

    最近自己陷入了很长时间的学习和思考之中,突然发现好久没有更新博文了,于是便想更新一篇. 这篇文章是我之前程序设计语言课作业中一段代码,用scheme语言实现单源最段路算法.当时的我,花了一整天时间,学 ...

  7. 模板C++ 03图论算法 1最短路之单源最短路(SPFA)

    3.1最短路之单源最短路(SPFA) 松弛:常听人说松弛,一直不懂,后来明白其实就是更新某点到源点最短距离. 邻接表:表示与一个点联通的所有路. 如果从一个点沿着某条路径出发,又回到了自己,而且所经过 ...

  8. 2018/1/28 每日一学 单源最短路的SPFA算法以及其他三大最短路算法比较总结

    刚刚AC的pj普及组第四题就是一种单源最短路. 我们知道当一个图存在负权边时像Dijkstra等算法便无法实现: 而Bellman-Ford算法的复杂度又过高O(V*E),SPFA算法便派上用场了. ...

  9. 图论-单源最短路-SPFA算法

    有关概念: 最短路问题:若在图中的每一条边都有对应的权值,求从一点到另一点之间权值和最小的路径 SPFA算法的功能是求固定起点到图中其余各点的的最短路(单源最短路径) 约定:图中不存在负权环,用邻接表 ...

  10. POJ - 3268 Silver Cow Party SPFA+SLF优化 单源起点终点最短路

    Silver Cow Party One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to ...

随机推荐

  1. Hadoop开发

    HDFS HDFS提供一套Java API来操作HDFS,包括文件的建立.修改.删除.权限管理等,下面对几个常用的API进行介绍,详细的API接口请参见API文档,可以在${HADOOP_HOME}/ ...

  2. "makefile:5: *** missing separator. Stop."【转】

    本文转载自:http://blog.csdn.net/fireroll/article/details/8607903 写makefile时出现这个错误提示 是表示makefile中的命令前没有使用T ...

  3. 数据结构之 图论---最小生成树(prim + kruskal)

    图结构练习——最小生成树 Time Limit: 1000MS Memory limit: 65536K 题目描述  有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的.现在我们想知 ...

  4. LightOJ1234 Harmonic Number —— 分区打表

    题目链接:https://vjudge.net/problem/LightOJ-1234 1234 - Harmonic Number    PDF (English) Statistics Foru ...

  5. Codeforces Round #376 (Div. 2) A. Night at the Museum —— 循环轴

    题目链接: http://codeforces.com/contest/731/problem/A A. Night at the Museum time limit per test 1 secon ...

  6. IOS开发学习笔记(2)-----UIButton 详解

    1. [代码][C/C++]代码     //这里创建一个圆角矩形的按钮    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRou ...

  7. Django中使用静态资源/文件

    Django中常需要引用js,css,小图像文件,一般我们把这一类文件称为静态文件,放置在static文件夹中,接下来,对Django中配置静态文件进行下傻瓜式的步骤介绍 在工程目录下新建static ...

  8. Java笔记(五)

    泛型:JDK1.5版本后出现的新特性.用于解决安全问题,是一个类型安全机制. 好处:将运行期间出现问题ClassCastException,转移到了编译时期.方便程序员解决问题,让运行时问题减少. 避 ...

  9. bzoj 1086 [SCOI2005]王室联邦——思路

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1086 于是去看了题解. 要回溯的时候再把自己加进栈里判断.这样才能保证剩下的可以通过自己连到 ...

  10. JavaScript-Tool-导向:wizard-un

    ylbtech-JavaScript-Tooll-导向:wizard 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtec ...