P1983 存边错了,是我题意理解错了?
#include<bits/stdc++.h>
using namespace std;
vector<int>jl[1005];
int head[1005];
int rd[1005];
int bnt;
int dian;
bool sf[1005];
bool tin[1005];
int shu[1005];
bool bian[1005][1005];
int main(){
// freopen("A/in.in","r",stdin);
// freopen("A/out.out","w",stdout);
int n,m,x;
cin>>n>>m;
dian=n;
for(int i=1;i<=m;i++){
cin>>x;
for(int j=1;j<=n;j++)tin[j]=false;
for(int j=1;j<=x;j++){
cin>>shu[i];
tin[shu[i]]=true;
}
for(int j=shu[1];j<=shu[x];j++){
if(tin[shu[i]]==false){
for(int k=1;k<=x;k++){
bian[shu[i]][j]=true;
rd[j]++;
}
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<bian[i][j]<<" ";
}
cout<<endl;
}
int cnt=0;
while(dian){
cnt++;
for(int i=1;i<=n;i++){
if(!sf[i]&&rd[i]<=0){
dian--;
sf[i]=true;
for(int j=1;j<=n;j++){
if(bian[i][j]){
bian[i][j]=false;
rd[j]--;
}
}
}
}
// cout<<dian<<endl;
}
cout<<cnt<<endl;
return 0;
}