POJ3169 Layout 差分约束系统[三星]

题目链接:POJ
CodeVs
由于是英文题目就不再复制题面了~

昨天看CV月赛的题看到这个题,因为Std有个地方看不懂所以自己再做了一下。

首先本题仔细读题后发现求最大值,于是就跑最短路:
然后再仔细读题会发现3个约束条件:
①:两个妹子不和,b-a >= c的情况,将它转化为最短路形式的约束条件就是:a<=b-c(这里我用的我总结的方法,链接:QAQAQAQ)这种情况下是b向a建一条权值为-c的边
②:两个妹子是百合,b-a<=c的情况,将它转换变成了:b<=a+c,即a向b建一条权值为c的边。
③:两个位置可以重合,但我们按从左向右的顺序来的话就是a <= b,即b向a建一条权值为0的边。

这样约束条件都列举了出来,之后再建边就行了,-1的情况是无解的情况,即存在负环,-2的情况是无法约束1到n距离的情况,即再约束系统中没有从1到达n的路径,如果都不是上面两种情况,就输出答案。

网上有篇std是将约束条件①反过来读,就是先读b再读a然后b->a建边……和我的想法其实是一致的QAQ

完整代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值