poj3159 {差分约束系统—>最短路)
来源:互联网 发布:just we闹钟淘宝 编辑:程序博客网 时间:2024/05/19 15:21
参考:http://www.cnblogs.com/void/archive/2011/08/26/2153928.html
题意:班上有n个同学,现在有一些糖要分给他们,设第i个同学得到的糖为p[i],分糖必须满足条件:
题意:第i个同学要求第j个同学的糖不能超过自己k个,即p[j] - p[i] <= k,k >= 0。要求在满足这些条件的
题意:情况下,求出p[n] - p[1]的最大值。
分析:由参考可知,即求p[n]——>p[1]的最短路
SPFA+Stack
#include <stdio.h>#include <math.h>#include <string.h>#include <stack>#include <queue>using namespace std;#define N 30010#define M 150010#define INF 99999999int n,m;int head[N],tot;stack<int>s;int dis[N];bool vis[N];struct Node{ int to,val,next;}node[M];void add(int u,int v,int w){ node[tot].to=v; node[tot].val=w; node[tot].next=head[u]; head[u]=tot++;}void spfa(){ dis[1]=0;vis[1]=0; s.push(1); while(!s.empty()){ int cur=s.top(); s.pop(); vis[cur]=0; for(int i=head[cur];i!=-1;i=node[i].next) if(dis[node[i].to]>dis[cur]+node[i].val){ dis[node[i].to]=dis[cur]+node[i].val; if(!vis[node[i].to]){ vis[node[i].to]=1; s.push(node[i].to); }//if }//if }//while}int main(){ int a,b,c; scanf("%d%d",&n,&m); memset(head,-1,sizeof(head)); memset(vis,0,sizeof(vis)); memset(dis,0x3f,sizeof(dis)); for(int i=0;i<m;i++){ scanf("%d%d%d",&a,&b,&c); add(a,b,c); } spfa(); printf("%d",dis[n]); return 0;}
0 0
- poj3159 {差分约束系统—>最短路)
- poj3159 Candies 最短路&差分约束
- poj3159 Candies(差分约束,最短路)
- POJ3159 差分约束系统
- poj3159 Candies(查分约束最短路)
- 差分约束系统 - 最短路
- 最短路--差分约束系统
- POJ3159—糖果分配 差分约束系统实现
- POJ3159 最大差距(差分约束系统) (K)
- POJ3159 最大差距(差分约束系统)
- POJ3159 最大差距(差分约束系统)
- POJ3159 最大差距(差分约束系统 ,Dijkstra+Heap)
- 【差分约束系统】Candies POJ3159
- 【POJ3159】Candies-差分约束系统
- 【差分约束系统】POJ3159[Candies]题解
- poj3159(差分约束)
- 差分约束系统详解(转化为最短路)
- poj3159——Candies(差分约束+SPFA堆栈)
- [leetcode]Different Ways to Add Parentheses
- Python字符串类型转换函数
- Velocity快速入门教程
- Linux目录解析
- jQuery 属性操作 - attr() 方法
- poj3159 {差分约束系统—>最短路)
- linux下vi命令大全
- android 真机调试如何得到raw文件的路劲
- Bellman-Ford 算法及其优化以及SPFA
- Objective-C 【类方法/对象方法-匿名类-new&alloc init区别】
- IOS TabBar小知识(不断更新中。。。)
- jQuery的deferred对象详解
- Java之美[从菜鸟到高手演变]之Java学习方法
- 第16章 Hibernate事务处理和缓存管理