1. //
  2. #include<iostream>
  3. #include<cstring>
  4. #include<queue>
  5. #include<stack>
  6. #include<stdio.h>
  7. using namespace std;
  8. const int INF=0x3f3f3f3f;
  9. const int N=,M=;
  10. int h[N],e[M],ne[M],w[M],idx;
  11. int st[N];
  12. int dist[N];
  13. int n,m;
  14. bool vis[N];
  15. int Scan()
  16. {
  17. int res = , ch, flag = ;
  18. if((ch = getchar()) == '-') //判断正负
  19. flag = ;
  20. else if(ch >= '' && ch <= '') //得到完整的数
  21. res = ch - '';
  22. while((ch = getchar()) >= '' && ch <= '' )
  23. res = res * + ch - '';
  24. return flag ? -res : res;
  25. }
  26. void add(int a,int b,int c)
  27. {
  28. e[idx]=b;
  29. w[idx]=c;
  30. ne[idx]=h[a];
  31. h[a]=idx++;
  32. }
  33. void spfa(int start)
  34. {
  35. memset(vis,,sizeof vis);
  36. for(int i=;i<=n;i++)
  37. dist[i]=INF;
  38. stack<int>s;
  39. s.push(start);
  40. dist[start]=;
  41. vis[start]=;
  42. while(s.size())
  43. {
  44. int u=s.top();
  45. s.pop();
  46. vis[u]=;
  47. for(int j=h[u];j!=-;j=ne[j])
  48. {
  49. int v=e[j];
  50. int w1=w[j];
  51. if(dist[v]>dist[u]+w1)
  52. {
  53. dist[v]=dist[u]+w1;
  54. if(vis[v]==)
  55. {
  56. s.push(v);
  57. vis[v]=;
  58. }
  59. }
  60. }
  61. }
  62. printf("%d\n",dist[n]);
  63. }
  64. int main()
  65. {
  66. while(scanf("%d%d", &n, &m)!=EOF)
  67. {
  68. idx=;
  69. memset(h,-,sizeof h);
  70. for(int i=;i<m;i++)
  71. {
  72. int x,y,w;
  73. scanf("%d%d%d",&x,&y,&w);
  74. add(x,y,w);
  75. }
  76. spfa();
  77. }
  78. return ;
  79. }

Candies POJ - 3159 差分约束的更多相关文章

  1. poj 3159(差分约束经典题)

    题目链接:http://poj.org/problem?id=3159思路:题目意思很简单,都与给定的条件dist[b]-dist[a]<=c,求dist[n]-dist[1]的最大值,显然这是 ...

  2. poj 3159 差分约束

    思路:班长的糖果要比snoopy的多.并且要用手写堆栈,且堆栈的大小要开到20000000. #include<iostream> #include<cstdio> #incl ...

  3. (简单) POJ 3159 Candies,Dijkstra+差分约束。

    Description During the kindergarten days, flymouse was the monitor of his class. Occasionally the he ...

  4. Candies POJ - 3159 (最短路+差分约束)

    During the kindergarten days, flymouse was the monitor of his class. Occasionally the head-teacher b ...

  5. poj Layout 差分约束+SPFA

    题目链接:http://poj.org/problem?id=3169 很好的差分约束入门题目,自己刚看时学呢 代码: #include<iostream> #include<cst ...

  6. poj 1201 差分约束

    http://www.cnblogs.com/wangfang20/p/3196858.html 题意: 求集合Z中至少要包含多少个元素才能是每个区间[ai,bi]中的元素与Z中的元素重合个数为ci. ...

  7. POJ - 3169 差分约束

    题意:n头牛,按照编号从左到右排列,两头牛可能在一起,接着有一些关系表示第a头牛与第b头牛相隔最多与最少的距离,最后求出第一头牛与最后一头牛的最大距离是多少,如         果最大距离无限大则输出 ...

  8. POJ 1201 差分约束+SPFA

    思路: 差分约束,难在建图.(我是不会告诉你我刚学会SPFA的...) 把每个区间的ai–>bi连一条长度为ci的边. k–>k+1连一条长度为0的边. k+1–>k连一条长度为-1 ...

  9. Candies POJ - 3159

    题目链接:https://vjudge.net/problem/POJ-3159 思路: 能看出是差分约束的题, 我们想假设一个人是 p(1),另一个人是p(2),他们之间糖果差为w, 那么需要满足的 ...

随机推荐

  1. 小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据

    在家为国家做贡献太无聊,不如跟我一起学点 Python 人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Panda ...

  2. win10系统安装VMware虚拟机软件以及linux系统

    一.安装VMware 1.在VMware官网下载VMware Workstation Pro 15.5.1 下载地址:https://my.vmware.com/cn/web/vmware/detai ...

  3. kali重置root密码

    像这样,kali系统的root密码忘记了,只需一分钟时间,快速重置root密码 第一步: 电脑开机后kali系统会进入引导界面,这是我们只需 “e” 进入启动前编辑命令(若系统没有出现这个页面,大家在 ...

  4. 《Head first设计模式》之外观模式

    外观模式提供了一个统一的接口,用来访问子系统中的一群接口.外观定义了一个高层接口,让子系统更容易使用. 我们已经知道适配器模式是如何将一个类的接口转换成另一个符合客户期望的接口的.现在我们要看一个改变 ...

  5. [jQuery]jQuery和DOM对象互换(四)

    DOM 和 jQuery 相互转换 DOM 转jQuery $(DOM对象) # (1)直接获取 $('video'); # (2)转换 $(DOM对象) var myVideo = document ...

  6. window下建立vue.js项目

    安装node.js 直接下载安装文件安装就可以了 vue项目搭建 .到自己要件项目的文件夹运行cmd命令 .如果没有安装vue-cli .npm install -g vue-cli .vue ini ...

  7. 【全集】大数据Linux基础

    课程介绍 本课程是由猎豹移动大数据架构师,根据公司大数据平台的运维情况,精心设计和打磨的大数据必备Linux课程.通过本课程的学习大数据新手能够少走弯路,快速掌握Linux常用命令及Shell编程,为 ...

  8. oracle11g-R2数据库的逻辑备份(数据泵的导入导出)

    一.环境: server1迁移到server2 server1: 服务器号:201 系统:Windows server 2008 R2 x64 IP地址:192.168.2.201 oracle数据库 ...

  9. Linux btrfs文件系统

    btrfs,它名字挺多:B-tree fs;Butter fs;Better fs 开源协议是GPL,2007年由Oracle研发 核心特性: 多物理卷支持,btrfs可由多个物理卷组成:支持RAID ...

  10. echarts多条折线图

    折线图单只比较好配置,但是多只的话,楼主整整难了一下午才搞出来,下面分享下啦 var myChart = echarts.init(document.getElementById('series-ch ...