实在不知道哪错了大佬们帮忙调一下吧感谢!!!
using namespace std;
#include<bits/stdc++.h>
#define ll long long
ll n,m,s,t; ll u,v,w;const ll N=500;
ll f,d,nn;
ll ff,dd;
ll ans=0;
struct edge{
ll to,nxt,val;
}ed[N<<2];ll head[N];ll cntt=1;
ll dis[1000];
ll pre[1000];ll vis[1000];
void add_t(ll u,ll v,ll w){
ed[++cntt].nxt=head[u];
ed[cntt].to=v;ed[cntt].val=w;head[u]=cntt;
ed[++cntt].nxt=head[v];
ed[cntt].to=u;ed[cntt].val=0;
head[v]=cntt;
}
int bfs(){
s=401;t=402;
memset(vis,0,sizeof(vis));
queue<ll> q;
q.push(s);
vis[s]=1;
dis[s]=2005020600;
while(!q.empty()){
ll x=q.front();
q.pop();
for(ll i=head[x];i;i=ed[i].nxt){
if(ed[i].val==0) continue;
ll v=ed[i].to;
if(vis[v]==1)continue;
dis[v]=min(dis[x],ed[i].val);
pre[v]=i;q.push(v);
vis[v]=1;
if(v==t) return 1;
}
}
return 0;
}
void upd(){
ll x=t;
while(x!=s){
int v=pre[x];
ed[v].val-=dis[t];
ed[v^1].val+=dis[t];
x=ed[v^1].to;
}
ans+=dis[t];
return;
}
int main(){
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cin>>f>>d>>n;
for(int i=1;i<=f;i++){
add_t(401,i,1);
}
for(int i=1;i<=n;i++){
cin>>ff>>dd;
for(int j=1;j<=ff;j++){
ll t;cin>>t;
add_t(t,i+100,1);
}
for(int k=1;k<=dd;k++){
ll t;cin>>t;
add_t(i+200,t+300,1);
}
add_t(i+100,i+200,1);
}
for(int i=1;i<=d;i++){
add_t(i+300,402,1);
}
n=f+d+2*nn+2;
while(bfs()!=0){
upd();
}
cout<<ans;
}