POJ 3159 差分约束+SPFA
来源:互联网 发布:网络通信有哪些 编辑:程序博客网 时间:2024/05/20 16:34
题意:
给n个人派糖果,给出m组数据,每组数据包含A,B,c 三个数,意思是A的糖果数比B少的个数不多于c。最后求n 比 1 最多多多少糖果。
题解:
这道题可以直接找到约束条件,A的糖果数比B少的个数不多于c,即B的糖果数 - A的糖果数<= c 。就是B-A<=C。就可以得到答案了,还有一点要注意的是这题如果用SPFA 算法的话,则不能用spfa+queue 来求,会TLE ,而是用 spfa + stack。(听说SPFA求差分约束用stack的效率比queue高)
题外话:
ORZ当初不懂这玩意,直接一个SPFA模板过去就算了,后面知道差分约束这玩意才知道自己当初只是运气好过的。。。。。
#include<stdio.h>#include<string.h>#include<stack>#include<algorithm>using namespace std;#define INF 0x3f3f3f3f#define LL long long int const int MAXN=150010;struct node{ int w,v,next;}edge[MAXN];int dis[MAXN];int edgehead[MAXN];bool vis[MAXN];int n,m;int tol;void addedge(int u,int v,int w){ edge[tol].v=v; edge[tol].w=w; edge[tol].next=edgehead[u]; edgehead[u]=tol++;}void spfa(){ memset(vis,false,sizeof(vis)); memset(dis,INF,sizeof(dis)); dis[1]=0; stack<int>q; q.push(1); while(!q.empty()) { int u=q.top(); q.pop(); vis[u]=false; for(int i=edgehead[u];i!=-1;i=edge[i].next) { int v=edge[i].v; int w=edge[i].w; if(dis[v]>dis[u]+w) { dis[v]=dis[u]+w; if(!vis[v]) { q.push(v); vis[v]=true; } } } }}int main(){ while(~scanf("%d%d",&n,&m)) { tol=1; memset(edgehead,-1,sizeof(edgehead)); memset(edge,0,sizeof(edge)); for(int i=1;i<=m;i++) { int x,y,l; scanf("%d%d%d",&x,&y,&l); addedge(x,y,l); } spfa(); printf("%d\n",dis[n]); }}
阅读全文
0 0
- POJ 3159 Candies 差分约束+spfa
- poj 3159 Candies 差分约束 + spfa
- POJ 3159 差分约束系统+spfa
- POJ 3159 Candies【差分约束+SPFA】
- poj 3159 差分约束 + SPFA + 栈
- POJ 3159 (差分约束+spfa)
- POJ 3159 差分约束+SPFA
- Poj 3159 (差分约束系统,SPFA+栈,Dij+heap)
- POJ - 3159 不卡建图,几乎赤果果的差分约束+SPFA..
- POJ 3159 Candies [差分约束系统 SPFA+STACK]
- 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 )
- 【poj 3159】Candies 差分约束+spfa(stack)
- POJ 3159 松弛操作 差分约束 SPFA
- Linux上安装Python的PIL和Pillow库处理图片的实例教程
- Android Money测试基础一
- CentOS 7中创建新用户并授权
- 快速查找Maven依赖的库
- 根据年月日来判断其所对应的星期
- POJ 3159 差分约束+SPFA
- opencv学习笔记——访问图像中的像素
- HDU 2896 病毒侵袭(AC自动机)
- 机器学习缺失值处理方法汇总
- Python学习笔记——字符串
- 算法进阶3-6
- maven项目中jsp不能编译情况(Unable to compile class for JSP)
- 大数据:随机生成10万个整数找出出现次数前一百的数
- 2017年11月26日训练总结