题目链接:https://cn.vjudge.net/contest/276233#problem/B

思路和上一个一样,不过注意点有两个,第一,对dis数组进行初始化的时候,应该初始化成ox3f3f3f3f3f3f3f,因为这个题目的边权加到一定程度的时候会超过int。第二点,如果是memset,好像不能对dis数组初始化0x3f3f3f3f3f3f3f,然后我用for循环初始化的,就过了。。。

AC代码:

#include<iostream>
#include<cstring>
#include<stack>
#include<iomanip>
#include<cmath>
#include<queue>
#include<algorithm>
#include<stdio.h>
using namespace std;
# define ll long long
# define inf 0x3f3f3f3f3f3f3f
const int maxn = 1000+100;
const int maxedge= 2000000+10;
int n,ml,md;
int num,head[maxn];
ll dis[maxn];
int out[maxn],vis[maxn];
struct node
{
int to;
ll cost;
int nex;
} edge[maxedge];
void init()
{
num=0;
for(int i=0;i<=n;i++){
dis[i]=inf;
head[i]=-1;
vis[i]=0;
out[i]=0;
}
}
void addedge(int fr,int to,ll cost)
{
edge[num].to=to;
edge[num].cost=cost;
edge[num].nex=head[fr];
head[fr]=num++;
}
ll spfa()
{
queue<int>q;
q.push(1);
dis[1]=0;
vis[1]=1;
out[1]++;
while(!q.empty())
{
int tmp=q.front();
out[tmp]++;
if(out[tmp]>n)
return -1;
q.pop();
vis[tmp]=0;
for(int i=head[tmp]; i!=-1; i=edge[i].nex)
{
int u=edge[i].to;
if(dis[u]>dis[tmp]+edge[i].cost)
{
dis[u]=dis[tmp]+edge[i].cost;
if(vis[u])
continue;
q.push(u);
vis[u]=1;
}
}
}
if(dis[n]==inf)
return -2;
return dis[n];
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{ int u,v;
ll w;
scanf("%d %d %d",&n,&ml,&md);
init();
for(int i=1; i<=ml; i++)
{
scanf("%d %d %lld",&u,&v,&w);
addedge(u,v,w);
}
for(int i=1; i<=md; i++)
{
scanf("%d %d %lld",&u,&v,&w);
addedge(v,u,-w);
}
ll ans=spfa();
printf("%lld\n",ans);
}
return 0;
}

差分约束系统+spfa(B - World Exhibition HDU - 3592 )的更多相关文章

  1. spfa+差分约束系统(C - House Man HDU - 3440 )+对差分约束系统的初步理解

    题目链接:https://cn.vjudge.net/contest/276233#problem/C 题目大意:有n层楼,给你每个楼的高度,和这个人单次的最大跳跃距离m,两个楼之间的距离最小是1,但 ...

  2. 差分约束系统 + spfa(A - Layout POJ - 3169)

    题目链接:https://cn.vjudge.net/contest/276233#problem/A 差分约束系统,假设当前有三个不等式 x- y <=t1 y-z<=t2 x-z< ...

  3. 【差分约束系统/SPFA】POJ3169-Layout

    [题目大意] n头牛从小到大排,它们之间某些距离不能大于一个值,某些距离不能小于一个值,求第一头牛和第N头牛之间距离的最大值. [思路] 由题意可以得到以下不等式d[AL]+DL≥d[BL]:d[BD ...

  4. BZOJ 2330 [SCOI2011]糖果 ——差分约束系统 SPFA

    最小值求最长路. 最大值求最短路. 发现每个约束条件可以转化为一条边,表示一个点到另外一个点至少要加上一个定值. 限定了每一个值得取值下界,然后最长路求出答案即可. 差分约束系统,感觉上更像是两个变量 ...

  5. PKU 1201 Intervals(差分约束系统+Spfa)

    题目大意:原题链接 构造一个集合,这个集合内的数字满足所给的n个条件,每个条件都是指在区间[a,b]内至少有c个数在集合内.问集合最少包含多少个点.即求至少有多少个元素在区间[a,b]内. 解题思路: ...

  6. ACM/ICPC 之 差分约束系统两道(ZOJ2770-POJ1201)

    当对问题建立数学模型后,发现其是一个差分方程组,那么问题可以转换为最短路问题,一下分别选用Bellmanford-SPFA解题 ZOJ2770-Burn the Linked Camp //差分约束方 ...

  7. HDU 3666.THE MATRIX PROBLEM 差分约束系统

    THE MATRIX PROBLEM Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  8. [HDU 1529]Cashier Employment(差分约束系统)

    [HDU 1529]Cashier Employment(差分约束系统) 题面 有一个超市,在24小时对员工都有一定需求量,表示为\(r_i\),意思为在i这个时间至少要有i个员工,现在有n个员工来应 ...

  9. 【差分约束系统】【spfa】UVALive - 4885 - Task

    差分约束系统讲解看这里:http://blog.csdn.net/xuezhongfenfei/article/details/8685313 模板题,不多说.要注意的一点是!!!对于带有within ...

随机推荐

  1. Reverse Words in a String II

    Given an input string, reverse the string word by word. A word is defined as a sequence of non-space ...

  2. java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ClassLoadingException

    下载高版本的: hibernate-commons-annotations-5.0.1.Final.jar 低版本缺包

  3. Python2X和Python3X的区别

    python2X:源码重复不规范python3X:整合源码,更清晰简单优美.         python2X:默认的编码是ascii  (解决办法为第一行添加 :  #-*- encoding:ut ...

  4. Mysql 5.7 报错 3534 错误

    需要先 执行 mysqld  --initialize 然后  mysqld --install 最后  net start mysql 即可启动服务 如果不执行第一步 则会报错

  5. iphonex适配

    这一篇具体适配步骤比较全面 iphonex适配 这一篇图文讲解比较全面 关于H5页面在iPhoneX适配

  6. Alpha 冲刺 —— 十分之六

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 测试服务器并行能力 学习MSI.CUDA ...

  7. kafka问题集(三)ISR缺失

    仅个人实践所得,若是有误,欢迎指出. 一.场景 kafka集群中某一节点(N-10)的CPU利用率大于整个集群的平均水平,且达到报警值.使用top命令后台查看时发现是kafka服务导致CPU利用率高. ...

  8. 前端学习 --Css -- 子元素的伪类

    :first-child 寻找父元素的第一个子元素,在所有的子元素中排序: :last-child 寻找父元素的最后一个子元素,在所有的子元素中排序: :nth-child 寻找父元素中的指定位置子元 ...

  9. Android获取长按按键响应

    Android获取长按按键响应http://www.2cto.com/kf/201312/261719.html Android下Listview的onItemClick以及onItemLongCli ...

  10. 那些ie6已支持的方法属性,成为事实标准。或者方便大家的api

    很多api,都是ie6实现,后来其他w3c或其他浏览器支持,或者用类似的方法模拟 onselectionchange  判断选区改变 ,chrome已支持 Element.contains   判断元 ...