/ Vijos / 题库 /

差分约束系统

差分约束系统

时间限制:1秒  内存限制:256M


【题目描述】

  如果一个系统由 \(n\) 个变量和 \(m\) 个约束条件组成,其中每个约束条件形如 \(x_j-x_i≤bk(i,j∈[1,n],k∈[1,m])\),则称其为差分约束系统。亦即,差分约束系统是求解关于一组变量的特殊不等式组的方法。

  下面是关于差分约束系统一个实际问题的描述:

  FJ有 \(n\) 头奶牛(编号从 \(1\) 到 \(n\)),沿一条直线站着等候喂食,由于奶牛们身材都比较苗条,所以可能有多头奶牛站在同一个位置的情况。设第 \(i\) 头奶牛站队位置为 \(d[i]\),在安排每头奶牛站队位置 \(d[i]\) 时需要满足如下的条件:

  1、奶牛应按照编号顺序站队,即 \(d[i]-d[i+1]≤0\)。

  2、\(m\) 对友好的牛希望彼此站的近些。即对于友好关系 \((i,j,D)\) 有 \(d[j]-d[i]≤D(1 ≤ i < j ≤ n)\)。

  3、\(p\) 对敌对的牛希望彼此站的远些。即对于敌对关系 \((i,j,L)\) 有 \(d[j]-d[i]≥L(1 ≤ i < j ≤ n)\)。

  现在请你帮助FJ判断是否存在满足这些条件的一种站队方案,如果存在请计算 \(1\) 号奶牛与 \(n\) 号奶牛之间的最大距离。如果不存在满足要求的方案,输出 -1;如果 1 号奶牛和N号奶牛间的距离可以任意大,输出 -2;

【输入格式】

  第 1 行输入 \(n,m,p\),接下来的 \(m\) 行,每行三个整数 \(i,j,D\),表示牛 \(i\) 和牛 \(j\) 的距离最多为 \(D\),再接下来的 \(p\) 行,每行三个整数 \(i,j,L\),表示牛 \(i\) 和牛 \(j\) 的距离最少为 \(L\)。

【输出格式】

  如果不存在满足要求的方案,输出 -1;如果 1 号奶牛和 \(N\) 号奶牛间的距离可以任意大,输出-2;否则,计算出在满足所有要求的情况下,1 号奶牛和 \(N\) 号奶牛间可能的最大距离。

【输入输出样例】

 Input

4 2 1
1 3 10
2 4 20
2 3 3

 Output

27

【数据限制】

  对于 \(100\%\) 的数据,\(2≤n≤1000\),\(1≤m,p≤10000\),\(1≤D,L≤1000000\)。

【来源】

  Mr.he

信息

ID
2042
难度
(无)
分类
图结构 | 最短路 点击显示
标签
(无)
递交数
0
已通过
0
通过率
?
被复制
1
上传者