这个题中,我一开始的思路是,构建出能够女装的不等式,然后二分答案(为了简化运算我用了 log ):
注:0是一个节点,可以把它看作为一个确定的值 0。
⎩⎨⎧0+x≤C (确定分数的点建边)C−x≤0logA−logk≤logB (opt=1)logA+logk≤logB (opt=2)
其中 opt=1 时为了防止出现负数运算,加边的时候先使用的 k 在 spfa 中最后在取的负,然后二分时如果可以构成方案,就向上界找,不能构成就向下界找。
思路1的代码
但在这个不行时我又从反面想,构造不会出现女装时的不等式。
⎩⎨⎧0+x≤C (确定分数的点建边)C−x≤0logB+logk≤logA (opt=1)logB−logk≤logA (opt=2)
这个二分时正好是反着的,
思路二的代码
都是跑的最长路,但是思路二是正确的,但是思路一跑不出来,理论上两种方法应该都是可以的啊,求解qwq。