#L0824. 差分约束可行性判定

差分约束可行性判定

题目描述

给定 nn 个整数变量 x1,x2,…,xnx_1, x_2, \ldots, x_n,以及 mm 条约束条件,判断是否存在一组整数赋值满足所有约束。

约束有三种类型:

  • 类型 1:xa≥xb+cx_a \ge x_b + c(变量 aa 比变量 bb 至少大 cc);
  • 类型 2:xa≤xb+cx_a \le x_b + c(变量 aa 比变量 bb 至多大 cc);
  • 类型 3:xa=xbx_a = x_b(变量 aa 和变量 bb 相等)。

输入格式

第一行两个整数 nn 和 mm,分别表示变量个数和约束条数。

接下来 mm 行,每行描述一条约束:

  • 若第一个数为 11,后跟三个整数 a,b,ca, b, c,表示 xa≥xb+cx_a \ge x_b + c;
  • 若第一个数为 22,后跟三个整数 a,b,ca, b, c,表示 xa≤xb+cx_a \le x_b + c;
  • 若第一个数为 33,后跟两个整数 a,ba, b,表示 xa=xbx_a = x_b。

输出格式

如果存在满足所有约束的整数赋值,输出 Yes,否则输出 No。

样例

3 3
3 1 2
1 1 3 1
2 2 3 2
Yes

提示

对于 100%100\% 的数据,1≤n,m,a,b,c≤5×1031 \le n, m, a, b, c \le 5 \times 10^3。

难度 普及+/提高-
通过率 —
尝试 0
通过 0
ID
1552
类型
传统题
Time Limit
1000ms
Memory Limit
128MiB
上传者