bzoj 4519: [Cqoi2016]不同的最小割 分治&最小割

       同zjoi的那倒最小割,跑最小割之后按S和T两个集合递归分治。

AC代码如下:

#include
#include
#include
#include
#define N 1005
#define M 20005
using namespace std;

int n,m,tot=1,sta,gol,cnt,fst[N],cur[N],pnt[M],len[M],nxt[M],d[N],h[N],num[N],fa[N],a[N],b[N],c[N];
bool vis[N];
void add(int x,int y,int z){
	pnt[++tot]=y; len[tot]=z; nxt[tot]=fst[x]; fst[x]=tot;
}
void bfs(){
	memset(num,0,sizeof(num));
	memset(d,0x3f,sizeof(d)); d[gol]=0;
	int head=0,tail=1; h[1]=gol;
	while (head>1; }
	bfs(); memcpy(cur,fst,sizeof(fst));
	int x=sta,flow=0,p; bool flag;
	while (d[x]


by lych

2016.4.22

你可能感兴趣的:(bzoj)