摘要:
题意:n头牛编号为1到n,按照编号的顺序排成一列,每两头牛的之间的距离 >= 0。这些牛的距离存在着一些约束关系:1.有ml组(u, v, w)的约束关系,表示牛[u]和牛[v]之间的距离必须 <= w。2.有md组(u, v, w)的约束关系,表示牛[u]和牛[v]之间的距离必须 >= w。问如果这n头无法排成队伍,则输出-1,如果牛[1]和牛[n]的距离可以无限远,则输出-2,否则则输出牛[1]和牛[n]之间的最大距离。分析:三个式子:1、s[i+1]-s[i]>=0 ==> s[i]-s[i+1]<=02、ML 时:s[end]-s[st]<=x 阅读全文
摘要:
题意:已知一个序列a[1], a[2], ......, a[n],给出它的若干子序列以及对该子序列的约束条件,例如a[si], a[si+1], a[si+2], ......, a[si+ni],且a[si]+a[si+1]+a[si+2]+......+a[si+ni] < or > ki。转化:a[a] + a[a+1] + …… + a[b] < c 可以转化成前n项和sum[b] - sum[a - 1] < c,为了能用Bellman_Ford,即将< 转化成 <= ,sum[b] - sum[a - 1] <= c - 1。注意:1,松 阅读全文
摘要:
输入的边有两种格式: 1. 边长确定,即xi - xj = b; 可以转化成 xi - xj <= b(xj>= xi +(-b)) 和 xi - xj >=b (即 xj - xi <= -b). 2. 边长不定,xi - xj >= 1; 可以转化成 xj - xi <= -1;分析:差分约束View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 6 using nam 阅读全文