差分约束

我也忘了谁说的了,反正我记得有人说过,只要是差分约束问题都可以转换成图

至少目前看来都是这样的

我一开始spfa+queue超时

看别人博客才知道要用spfa+stack,感觉智商又下降了一点

#include <iostream>
#include <cstdio>
#include <queue>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
const int maxn = ;
int head[maxn];
int nex[];
int cnt;
int dis[maxn];
bool vis[maxn];
struct node
{
int v;
int w;
};
node mp[];
int n,m;
void adde(int a,int b,int c)
{
mp[cnt].v = b;
mp[cnt].w = c;
nex[cnt] = head[a];
head[a] = cnt++;
}
long long spfa()
{
memset(dis,0x3f,sizeof(dis));
memset(vis,,sizeof(vis));
int stac[maxn];
int top = ;
stac[top++] = ;
dis[] = ;
vis[] =true;
while(top)
{
int u = stac[--top];
vis[u] = false;
for(int i = head[u]; i != -; i = nex[i])
{
//cout << u << " " << mp[i].v << " " << mp[i].w << endl;
if(dis[mp[i].v] > dis[u] + mp[i].w)
{
dis[mp[i].v] = dis[u] + mp[i].w;
//cout<< mp[i].v << " " << dis[mp[i].v] << endl;
if(vis[mp[i].v] == false)
{
stac[top++] = mp[i].v;
vis[mp[i].v] = true;
}
}
}
}
return dis[n];
}
int main()
{
//while(scanf("%d%d",&n,&m) != EOF)
//{
memset(mp,,sizeof(mp));
scanf("%d%d",&n,&m);
cnt = ;
memset(head,-,sizeof(head));
for(int i = ; i < m; ++i)
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
adde(a,b,c);
}
printf("%d\n",spfa());
//}
}

poj 3159的更多相关文章

  1. POJ 3159 Candies (图论,差分约束系统,最短路)

    POJ 3159 Candies (图论,差分约束系统,最短路) Description During the kindergarten days, flymouse was the monitor ...

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

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

  3. POJ 3159 Candies(SPFA+栈)差分约束

    题目链接:http://poj.org/problem?id=3159 题意:给出m给 x 与y的关系.当中y的糖数不能比x的多c个.即y-x <= c  最后求fly[n]最多能比so[1] ...

  4. POJ 3159 Candies(差分约束)

    http://poj.org/problem?id=3159 题意:有向图,第一行n是点数,m是边数,每一行有三个数,前两个是有向边的起点与终点,最后一个是权值,求从1到n的最短路径. 思路:这个题让 ...

  5. POJ 3159 Candies 解题报告(差分约束 Dijkstra+优先队列 SPFA+栈)

    原题地址:http://poj.org/problem?id=3159 题意大概是班长发糖果,班里面有不良风气,A希望B的糖果不比自己多C个.班长要满足小朋友的需求,而且要让自己的糖果比snoopy的 ...

  6. POJ 3159 Candies(差分约束+spfa+链式前向星)

    题目链接:http://poj.org/problem?id=3159 题目大意:给n个人派糖果,给出m组数据,每组数据包含A,B,C三个数,意思是A的糖果数比B少的个数不多于C,即B的糖果数 - A ...

  7. POJ 3159 Candies 还是差分约束(栈的SPFA)

    http://poj.org/problem?id=3159 题目大意: n个小朋友分糖果,你要满足他们的要求(a b x 意思为b不能超过a x个糖果)并且编号1和n的糖果差距要最大. 思路: 嗯, ...

  8. poj 3159 Candies(dijstra优化非vector写法)

    题目链接:http://poj.org/problem?id=3159 题意:给n个人派糖果,给出m组数据,每组数据包含A,B,c 三个数,意思是A的糖果数比B少的个数不多于c,即B的糖果数 - A的 ...

  9. POJ 3159 Candies(差分约束,最短路)

    Candies Time Limit: 1500MS   Memory Limit: 131072K Total Submissions: 20067   Accepted: 5293 Descrip ...

  10. poj 3159 Candies (差分约束)

    一个叫差分约束系统的东西.如果每个点定义一个顶标x(v),x(t)-x(s)将对应着s-t的最短路径. 比如说w+a≤b,那么可以画一条a到b的有向边,权值为w,同样地给出b+w2≤c,a+w3≤c. ...

随机推荐

  1. pandas,pd.ExcelWriter保存结果到已存在的excel文件中

    背景:pandas支持将DataFrame数据直接保存到excel中   保存的case如下: import pandas as pd with pd.ExcelWriter('a.xls') as ...

  2. linux学习笔记:vim程序编辑器—vim的使用

    注:以下是学习<鸟哥的linux私房菜>(第三版)的学习笔记,纯属个人学习记录. 2018-11-19 一.学习vim的原因 很多软件的编辑接口都会主动调用vi 二.vim的使用 (1)v ...

  3. cnpm install -g live-server 安装服务

    cnpm  install -g live-server     指令会在浏览器自动打开页面

  4. 关于textarea标签自己遇到的问题

    效果描述: 固定文本框的宽高,让文本框不被拖拽,让提示内容的文字垂直居中 html: <div> <label>活动详情</label> <textarea ...

  5. 解决cpplint在Python 3下没有任何输出的问题

    修改cpplint.py:1. main()中注释掉  # sys.stderr = codecs.StreamReaderWriter(sys.stderr,  # codecs.getreader ...

  6. max_delay/min_delay和input_delay/output_delay

    今天在使用DC设置随路时钟的时候发现里两个比较容易混淆的设置:max_delay/min_delay和input_delay/output_delay. 1)max_delay/min_delay设置 ...

  7. (4)Linux常用基本操作

    1.ping和traceroute 指定源IP ping:ping -I 源 目的    #I为大写的i 带源地址路由tracert:traceroute -d <目标地址> -s < ...

  8. vue-实现全选单选

    在获取列表页面数据时,通过forEach遍历存储数据的对象,给对象中添加一个selected变量,值为布尔值. 点击全选时,通过遍历将对象中selected的布尔值改变 点击单选时,被点中的通过筛选加 ...

  9. Unity 角色移动贴墙行走

    直接贴上代码,旋转角色角度检测碰撞 Vector2 v2Normal = new Vector2(normal.x, normal.y); float fAngle = Vector2.SignedA ...

  10. VBA 删除Excel中所有的图片

    Sub DeletePic()     Dim p As Shape     For Each p In Sheet1.Shapes         If p.Type = Then         ...