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. redis 使用 get 命令读取 bitmap 类型的数据

    在签到统计场景中,可以使用 bitmap 数据类型高效的存储签到数据,但 getbit 命令只能获取某一位值,就无法最优的满足部分业务场景了. 比如我们按年去存储一个用户的签到情况,365 天,只需要 ...

  2. vue的缓存机制

    缓存,不管是PC 端还是移动端,不可避免的问题.vue中有一个keepAlive,这个api 基本 能实现我们开发的一些需要. 一.简单介绍下keep-alive: 1.把切换出去的组件保留在内存中, ...

  3. sendevent是使用

    按下: sendevent /dev/input/event4 1 254 1 sendevent /dev/input/event4 0 0 0 松开: sendevent /dev/input/e ...

  4. ArcGIS发布动态空间,并验证

    发布 发布方法见视频. 验证 发布动态空间后,页面底部有 点进去后,使用如下语法验证. {"id": 0,"source": {"type" ...

  5. 003 - 修改Pycharm的项目文件树样式

    相信习惯了Eclipse或者Windows的小伙伴对于Pycharm的目录树一定觉得特别别扭 因为它总是在文件前加一个三角形标注, 这样的标注在视觉上十分误导层级关系 修改的方式为   File -& ...

  6. 002 - 配置Pycharm的背景颜色为豆沙绿护眼

    本文记录的是Pycharm2017年1月版本 Pycharm有自带的主题可供选择, 好多小伙伴喜欢使用Monoka的风格 但是也有不是很喜欢黑底风格的小伙伴可以使用默认主题+豆沙绿来替代 默认主题是白 ...

  7. June 25,2014---->Binder(IPC),Dalvik ,DEX/ODEX

    1.Binder(IPC) Linux进程之间要能够互相通信,从而共享资源和信息.所以,操作系统内核必须提供进程间的通信机制(IPC,Inter-Process Communication). IPC ...

  8. cygwin Could not create directory '/home/Administrator/.ssh'

    在cygwin下运行: ssh-keygen -C "634772208@qq.com" -t rsa 时,出现如下错误: cygwin Could not create dire ...

  9. java+poi实现word转html显示

    直入正题,需求为页面预览word文档,用的是poi3.8,以下代码支持表格.图片,不支持分页,只支持doc,不支持docx: 1.导jar包 2.java文件 /** * */ import java ...

  10. HDU1083(最大匹配)

    Courses Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...