Candies POJ - 3159 差分约束
//
#include<iostream>
#include<cstring>
#include<queue>
#include<stack>
#include<stdio.h>
using namespace std;
const int INF=0x3f3f3f3f;
const int N=,M=;
int h[N],e[M],ne[M],w[M],idx;
int st[N];
int dist[N];
int n,m;
bool vis[N];
int Scan()
{
int res = , ch, flag = ;
if((ch = getchar()) == '-') //判断正负
flag = ;
else if(ch >= '' && ch <= '') //得到完整的数
res = ch - '';
while((ch = getchar()) >= '' && ch <= '' )
res = res * + ch - '';
return flag ? -res : res;
}
void add(int a,int b,int c)
{
e[idx]=b;
w[idx]=c;
ne[idx]=h[a];
h[a]=idx++;
}
void spfa(int start)
{
memset(vis,,sizeof vis);
for(int i=;i<=n;i++)
dist[i]=INF;
stack<int>s;
s.push(start);
dist[start]=;
vis[start]=;
while(s.size())
{
int u=s.top();
s.pop();
vis[u]=;
for(int j=h[u];j!=-;j=ne[j])
{
int v=e[j];
int w1=w[j];
if(dist[v]>dist[u]+w1)
{
dist[v]=dist[u]+w1;
if(vis[v]==)
{
s.push(v);
vis[v]=;
}
}
}
}
printf("%d\n",dist[n]);
}
int main()
{
while(scanf("%d%d", &n, &m)!=EOF)
{
idx=;
memset(h,-,sizeof h);
for(int i=;i<m;i++)
{
int x,y,w;
scanf("%d%d%d",&x,&y,&w);
add(x,y,w);
}
spfa();
}
return ;
}
Candies POJ - 3159 差分约束的更多相关文章
- poj 3159(差分约束经典题)
题目链接:http://poj.org/problem?id=3159思路:题目意思很简单,都与给定的条件dist[b]-dist[a]<=c,求dist[n]-dist[1]的最大值,显然这是 ...
- poj 3159 差分约束
思路:班长的糖果要比snoopy的多.并且要用手写堆栈,且堆栈的大小要开到20000000. #include<iostream> #include<cstdio> #incl ...
- (简单) POJ 3159 Candies,Dijkstra+差分约束。
Description During the kindergarten days, flymouse was the monitor of his class. Occasionally the he ...
- Candies POJ - 3159 (最短路+差分约束)
During the kindergarten days, flymouse was the monitor of his class. Occasionally the head-teacher b ...
- poj Layout 差分约束+SPFA
题目链接:http://poj.org/problem?id=3169 很好的差分约束入门题目,自己刚看时学呢 代码: #include<iostream> #include<cst ...
- poj 1201 差分约束
http://www.cnblogs.com/wangfang20/p/3196858.html 题意: 求集合Z中至少要包含多少个元素才能是每个区间[ai,bi]中的元素与Z中的元素重合个数为ci. ...
- POJ - 3169 差分约束
题意:n头牛,按照编号从左到右排列,两头牛可能在一起,接着有一些关系表示第a头牛与第b头牛相隔最多与最少的距离,最后求出第一头牛与最后一头牛的最大距离是多少,如 果最大距离无限大则输出 ...
- POJ 1201 差分约束+SPFA
思路: 差分约束,难在建图.(我是不会告诉你我刚学会SPFA的...) 把每个区间的ai–>bi连一条长度为ci的边. k–>k+1连一条长度为0的边. k+1–>k连一条长度为-1 ...
- Candies POJ - 3159
题目链接:https://vjudge.net/problem/POJ-3159 思路: 能看出是差分约束的题, 我们想假设一个人是 p(1),另一个人是p(2),他们之间糖果差为w, 那么需要满足的 ...
随机推荐
- vue-cli 脚手架
vue脚手架 vue-cli 基于webpack.帮助我们完成了对项目的基本架构,冗余代码比较多 ,资源的浪费 1.全局安装vue的脚手架 cnpm install @vue/cli -g 2.查看版 ...
- vue学习(二)模板页配置(bootstrap)
1.替换我们的显示页面 删除components下的所有文件,新建模板页文件夹 layout. //Layout.vue <template> <div> <header ...
- STM32,ARM,Keil工具相关
One ELF Section per Function https://blog.csdn.net/iceiilin/article/details/6091575 因此,可以得出,选项One EL ...
- 向C++之父Bjarne Stroustrup致敬
2013-04-25 21:30 (分类:社会人生) 非常好的文章 C ++ 的 背 影 ——C++之父Bjarne Strou ...
- Kali Linux初始化
配置SSH 1.将PubKeyAuthtication设置为 yes,同时将注释去除. 2.将PermitRootLogin改为PermitRootLogin yes,同时将注释去除. 3.启动/et ...
- Nodejs中,path.join()和path.resolve()的区别
在说path.join()和path.resolve()的区别之前,我先说下文件路径/和./和../之间的区别 /代表的是根目录: ./代表的是当前目录: ../代表的是父级目录. 然后再来说下pat ...
- C++常见编程--获取当前系统时间
C++常见编程--获取当前系统时间 文章首发https://www.cppentry.com 本文主要使用time() 及strftime() 函数 C++系统和时间相关的函数基本上都是使用C语言提供 ...
- Java连载89-SorteSet、Comparable接口
一. SortedSet集合直接举例 package com.bjpowernode.java_learning; import java.util.*; /** * java.util.Set * ...
- url相对路径变成绝对路径
var eleLink = document.createElement('a'); eleLink.href = "/wordpress/?p=9227"; console.lo ...
- SAP MM 采购订单与相关合同的价格差异问题分析
SAP MM 采购订单与相关合同的价格差异问题分析 笔者所在的项目里,一般生产性物料PO的价格是来自于合同价格的,而合同的价格来自于采购信息记录的价格,业务部门不允许PO里随便改价格的. 但是业务部门 ...