有个网络流的题,我没过样例,但比这题解发现图建对了,以为是自己打错模板了,但是交到板题上过了,除了模板实在找不出来那里和题解不一样,怀疑自己模板的正确性,认为过了板题只是数据强度不够,现在想造数据用板题题解对拍,但造出来的数据无法保证源点和汇点连通,且数据过于随机经常出现答案为0的数据,求一个构造有一定强度的网络流数据的程序,或指出模板是否正确
#include<bits/stdc++.h>
#define cit const register unsigned
#define open ios::sync_with_stdio(0),cin.tie(0),cout.tie(0),freopen("1.in","r",stdin),freopen("1.out","w",stdout)
using namespace std;constexpr unsigned N=1e4+1,p=924844033,inf=~0;
#define int register unsigned
#define ll long long
#define void inline void
#define cle(a) memset(a,0,sizeof a)
#define min(a,b) ((a)<(b)?(a):(b))
struct A{unsigned v,inv;unsigned ll w,f;};vector<A>a[N];unsigned sz[N];
void add(cit u,cit v,cit w){
a[u].emplace_back(A{v,sz[v],w,0});++sz[v];
a[v].emplace_back(A{u,sz[u],0,0});++sz[u];
}namespace ISAP{unsigned s,t,n,c[N],d[N],g[N];
inline unsigned ll dfs(cit u,cit ll r){if(u==t||!r)return r;
int ll b=0,v,w,f,h;for(;c[u]<sz[u];++c[u]){auto&e=a[u][c[u]];
v=e.v,w=e.w,f=e.f;if(d[u]==d[v]+1&&(h=dfs(v,min(r-b,w-f)))){
b+=h,e.f+=h,a[v][e.inv].f-=h;if(b==r||d[s]>=n)return b;}
}if(!(--g[d[u]]))d[s]=n;g[++d[u]]++;return b;}
inline unsigned ll aa(cit ts,cit tt,cit tn){int ll ans=0;cle(g),cle(d);
s=ts,t=tt,n=tn;while(d[s]<n)cle(c),ans+=dfs(s,inf);return ans;}}