POJ 3159 Candies(差分约束+SPFA )
来源:互联网 发布:mysql 索引 编辑:程序博客网 时间:2024/06/09 18:34
题目大意:
n个小孩,m个关系
A B c : 表示小孩A认为小孩B的糖果不能比自己多c个
方法:
这道题考察的是差分约束
首先建立不等关系
Dis[b] - Dis[a] <= c
将每个关系看成是有向图的一条边,SPFA求最短路
注意:SPFA+队列会超时(其实我是WA), 但是用SPFA+堆栈就莫名其妙的AC了
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <time.h>using namespace std;#pragma comment(linker, "/STACK:1024000000")#define LL long longconst int mod=1e9+7;const int INF=0x3f3f3f3f;const double eqs=1e-9;const int MAXN=150010;struct node{ int v,w,next;} Edge[MAXN*3];int Dis[MAXN*3],head[MAXN*2],vis[MAXN*3],top;int que[MAXN*3];void Add(int u,int v,int w){ Edge[top].v = v; Edge[top].w = w; Edge[top].next = head[u]; head[u] = top++;}void SPFA(int n){ int s = 0; int e = 0; for(int i=1; i<=n; i++) { Dis[i] = INF; vis[i] = false; } Dis[1] = 0; vis[1] = true; que[++s] = 1; while(s) { int u = que[s--]; vis[u] = false; for(int i=head[u]; i!=-1; i=Edge[i].next) { int w = Edge[i].w; int v = Edge[i].v; if(Dis[v] > Dis[u] + w) { Dis[v] = Dis[u] + w; if(!vis[v]) { vis[v] = true; que[++s] = v; } } } }}int main(){ int n,m,u,v,w; while(~scanf("%d%d",&n,&m)) { memset(head, -1, sizeof(head)); top = 0; while(m--) { scanf("%d%d%d",&u,&v,&w); Add(u,v,w); } for(int i=1;i<=n;i++) Add(0,i,0); SPFA(n); printf("%d\n",Dis[n]); } return 0;}
0 0
- POJ 3159 Candies 差分约束+spfa
- poj 3159 Candies 差分约束 + spfa
- POJ 3159 Candies【差分约束+SPFA】
- poj 3159 Candies(差分约束 spfa stack实现)
- POJ 3159 Candies(SPFA+栈)差分约束
- POJ 3159 Candies(spfa最短路,差分约束)
- POJ 3159 Candies(差分约束+SPFA )
- 【poj 3159】Candies 差分约束+spfa(stack)
- 【POJ 3159】Candies(差分约束+SPFA)
- Candies+差分约束+spfa+poj
- poj Candies(差分约束,spfa栈)
- poj 3259 Candies spfa 差分约束
- POJ 3159 Candies [差分约束系统 SPFA+STACK]
- POJ 3159 Candies 差分约束 spfa+栈+邻接表
- POJ 3159 Candies(差分约束基础题,栈式SPFA)
- POJ 3159 Candies 差分约束-SPFA栈实现
- poj 3159 Candies(差分约束)
- POJ 3159Candies (差分约束)
- mac系统设置显示和隐藏文件
- GCD的简单使用——图片的下载及展示
- Cisco Anyconnect VPN连接后网络受限的一种解决办法
- SQL笔记
- 纯C语言实现简单封装继承机制
- POJ 3159 Candies(差分约束+SPFA )
- 看到一篇文章留着慢慢消化
- A1219. 采矿(陈许旻) 树链剖分+线段树+DP
- 【转帖】对通用输入输出GPIO的深入理解http://www.9mcu.com/9mcubbs/forum.php?mod=viewthread&tid=954521(出处: 大连创客空间)
- C#委托&事件
- shiro入门实战笔记(9)--会话管理
- react-native组件封装与传值
- 对话DeepMind创始人:建立通用人工智能
- DataSet强实体类型,面向对象思想