凑字日常-1

小K的农场:

这个题是差分约束判断是否成环,建立所有点之间的关系,如果成环就说明这些条件互相矛盾

题目输入给的条件为

a-b>=c

a-b<=c

a-b==0(化为a-b<=0)

所以在a点与b点之间建一条权值为c的边表示a比b最大多种c个单位的作物

再在这些点之间跑spfa判断是否会出现环

有丶尴尬啊,感觉能写的都写了,没够字数(夹着烟的手微微颤抖)

那就再写一篇啊

天路:

这个题的答案在0~200之间的无理数,所以可以二分答案,对于每个二分的答案判断是否能够成负环

假定ans为最终答案(诶,这句话似曾相识,好像出现在了某题解里),所以V/p<=ans

所以可以转化为ans*p-v>=0

所以当bns[w]+ans*w[i].vis-w[i].zis<=bns[v]时

一开始将bns的数组全部清为0,所以这里只会出现负数

再从能扩展的点继续深搜,如果找到了一个点已经被标记过,但是现在还能再走这个点

就说明找到了负环,能找到一条负权回路就说明这个二分的答案小了缩小左边界的值

没找到就缩小右边界的值

如果左边界的值一直没有改变,就说明没有回路

嗯,应该“凑”够字了

posted @ 2018-05-28 08:39  Tarjan_fjz  阅读(93)  评论(0编辑  收藏  举报