差分约束建图,发现要在每个联通块里求最长路,600,直接O(n3) floyed #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> #define N 650 #define M 100050 using namespace std; int g[N][N],n,m1,m2,f[N],ans; int e=1,head…
(x,y,z)表示格子(x,y)的值为z,也就是x行+y列加的次数等于z,相当于差分约束的条件,用dfs判断冲突即可. #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N=2005; int T,n,m,k,cnt,p,h[N],va[N],f; bool v[N]; struct qwe { int ne,to,va; }e[N<<1]…
坑爹...要求最小值要转成最长路来做.... 小于关系要转化一下 , A < B -> A <= B - 1 -------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #include<iostream&…
[BZOJ1077]天平(差分约束) 题面 BZOJ 洛谷 题解 利用矩阵可以很容易得到两个点之间的最大差和最小差,再利用这个信息判断即可.差分约束用\(Floyd\)计算.时间复杂度\(O(n^3)\). #include<iostream> #include<cstdio> #include<cstring> using namespace std; #define MAX 55 int dmn[MAX][MAX],dmx[MAX][MAX]; int n,A,B,…
---题面--- 题解: 差分约束学得实在是太烂了,,,,QAQ 这里先记下: a - b >= x ---> a >= b + x ----> b ---> a = x(b连a,边权为x), ----> 找最长路, --->f[a][b]对应a - b的最小值, a - b <=x ---->后面的都反过来就好了 关于这道题: 首先我们可以发现它实际上就是告诉了我们一堆这样的关系: a > b, a <…