这题的技巧就是:枚举---旋转卡壳法。 题目大意: 每头牛对每个谷仓有一个喜欢程度,fj的目的就是要使得每头牛的happy尽可能的相同,求最小的范围。 这题的枚举还是很有技巧的。虽然知道怎么来滑动窗口。。 但是我的网络流ek算法太不给力了! 没办法.. 去学
这题的技巧就是:枚举---旋转卡壳法。
题目大意:
每头牛对每个谷仓有一个喜欢程度,fj的目的就是要使得每头牛的happy值尽可能的相同,求最小的范围。
这题的枚举还是很有技巧的。虽然知道怎么来滑动窗口。。 但是我的网络流ek算法太不给力了!
没办法.. 去学习了下sap勉强把这题切掉了= =
#include#include#include#include#define mn 1111#define inf 0x0fffffff#define cc(m,what) memset(m,what,sizeof(m))#define for(i,a,b) for( int i = (a) ; i = 0 ; i --)#define ss(a) scanf(%d,&a)#define ll(a) ((a) inline t countbit(t n) {return n?1+countbit(n&(n-1)):0;}template inline t sqr(t a) {return a*a;}template inline void checkmin(t &a,t b) {if(a == -1 || a > b)a = b;}template inline void checkmax(t &a,t b) {if(a dis[v] ) { cur[u]=v; mind=dis[v]; } if( (--gap[dis[u]])==0 ) break; gap[dis[u]=mind+1]++; u=pre[u]; } return maxflow;}bool work(){ int i,j; if( sap()==n ) return true; else return false;}int main(){ while( scanf(%d%d,&n,&b)!=eof ) { setg(); int range=inf; int r=1,l=1; while( l