小 K 在 MC 里面建立很多很多的农场,总共 n n n 个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共 m m m 个),以下列三种形式描述:
农场 a a a 比农场 b b b 至少多种植了 c c c 个单位的作物;农场 a a a 比农场 b b b 至多多种植了 c c c 个单位的作物;农场 a a a 与农场 b b b 种植的作物数一样多。但是,由于小 K 的记忆有些偏差,所以他想要知道存不存在一种情况,使得农场的种植作物数量与他记忆中的所有信息吻合。
第一行包括两个整数 n n n 和 m m m ,分别表示农场数目和小 K 记忆中的信息数目。
接下来 m m m 行:
如果每行的第一个数是 1 1 1 ,接下来有三个整数 a , b , c a,b,c a,b,c ,表示农场 a a a 比农场 b b b 至少多种植了 c c c 个单位的作物;如果每行的第一个数是 2 2 2 ,接下来有三个整数 a , b , c a,b,c a,b,c ,表示农场 a a a 比农场 b b b 至多多种植了 c c c 个单位的作物;如果每行的第一个数是 3 3 3 ,接下来有两个整数 a , b a,b a,b ,表示农场 a a a 种植的的数量和 b b b 一样多。如果存在某种情况与小 K 的记忆吻合,输出 Yes,否则输出 No。
对于 100 % 100\% 100% 的数据,保证 1 ≤ n , m , a , b , c ≤ 5 × 1 0 3 1 \le n,m,a,b,c \le 5 \times 10^3 1≤n,m,a,b,c≤5×103 。
这道题是差分约束。
其实就是一道差分约束的半模板题。
差分约束就是把一个一个约束条件变成一条边,然后如果这个图没有负环,就存在一种解,否则没有。
我们来化一下式子: a − b ≥ c a-b\geq c a−b≥c a − b ≤ c a-b\leq c a−b≤c a = b a=b a=b 可以变成: b ≤ a − c b\leq a-c b≤a−c a ≤ b + c a\leq b+c a≤b+c a ≤ b + 0 a\leq b+0 a≤b+0 而且 b ≤ a + 0 b\leq a+0 b≤a+0
然后就按差分约束模板题来做就行了。
我近期应该会吧模板题做了,然后发链接上来。 模板题链接:https://blog.csdn.net/weixin_43346722/article/details/108935825