博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA11478 Halum (差分约束)
阅读量:5764 次
发布时间:2019-06-18

本文共 1858 字,大约阅读时间需要 6 分钟。

每次操作是独立的,而且顺序并不影响,作用在同一个结点上的d可以叠加,所以令x(u) = sigma(dui).

最后就是要确定所有的x(u)。

因为m越大,满足条件的边就越少,二分答案m。

对于一条边a->b,可以列出一个不等式d(a,b) +x(a)-x(b)>=m,移项可得x(b)-x(a)<=d(a,b)-m

正好满足差分约束的形式。所有的边就对应着一个差分约束系统。

差分约束有解的充要条件是不存在负环。

证明:

x(b)-x(a)<=-c,c>0,意味着x(a)至少比x(b)大c,

因为不等式的传递性,如果x(a)在一个负环上,那么意味着x(a)>x(a),这是矛盾的。

 

因为一开始图不一定连通,可以加一个源点和其他所有点相连,边权为0,用源点的距离表示x(i)的值,

或者sfpa的时候把所有的点加入栈中(判负环用stack比较快)

#include
using namespace std;//#define LOCALconst int maxn = 501,maxm = 2705;int hd[maxn],nx[maxm],to[maxm],d[maxm];int n,m;int D[maxn],vis[maxn];int cnt[maxn];bool spfa(){ stack
S; memset(cnt,0,sizeof(cnt)); for(int i = 1; i <= n; i++) { vis[i] = true; D[i] = 0.; S.push(i); } while(S.size()){ int u = S.top(); S.pop(); vis[u] = false; for(int i = hd[u]; ~i; i = nx[i]){ int v = to[i]; if(D[v]>D[u]+d[i]){ D[v] = D[u]+d[i]; if(!vis[v]){ S.push(v); vis[v] = true; if(++cnt[v] > n) return true; } } } } return false;}bool P(int x){ for(int i = 0; i < m; i++) d[i] -= x; for(int i = 1; i <= n; i++) D[i] = 0; bool fg = spfa(); for(int i = 0; i < m; i++) d[i] += x; return fg;}int main(){#ifdef LOCAL freopen("in.txt","r",stdin);#endif while(~scanf("%d%d",&n,&m)){ memset(hd,-1,sizeof(hd)); int l = 1,r = 0; for(int i = 0; i < m; i++){ int u; scanf("%d%d%d",&u,to+i,d+i); nx[i] = hd[u]; hd[u] = i; r = max(r,d[i]); } if(P(l)) { puts("No Solution"); continue; } if(!P(r+1)) { puts("Infinite"); continue; } while(l
>1; !P(x)?l = x:r = x-1; } printf("%d\n",l); } return 0;}

 

转载于:https://www.cnblogs.com/jerryRey/p/4841145.html

你可能感兴趣的文章
TeeChart Pro VCL/FMX教程(六):使用系列(一)
查看>>
UIbot新版即将来袭,邀您来体验
查看>>
是时候为自己的后半生考虑了——致奔三的互联网人
查看>>
java B2B2C 源码 多级分销springmvc mybatis多租户电子商城系统-注册中心Eureka
查看>>
小程序问题答疑:小程序加盟代理选择哪家公司好?
查看>>
【分享】分享一个基于SSH实现的简单学生选课系统(附源码)
查看>>
数字和字母组合并生成图片的验证码祥解
查看>>
复习PHP-语言参考-生成器
查看>>
我的友情链接
查看>>
perl实例详解第四版笔记2 模块化
查看>>
【腾讯Bugly干货分享】深入源码探索 ReactNative 通信机制
查看>>
【腾讯Bugly干货分享】微信终端跨平台组件 mars 系列(一) - 高性能日志模块xlog...
查看>>
我的友情链接
查看>>
关于个人网站申报注意的问题
查看>>
26期20180611文件互传,用户配置文件,密码文件,组和用户管理
查看>>
JEPLUS平台首页规划之统计图版块的配置讲解
查看>>
第6章 存储结构与磁盘划分
查看>>
单臂路由
查看>>
App推广的新方法:同等资源位转化率提升90%
查看>>
centos7安装mysql5.7
查看>>