求助
  • 板块学术版
  • 楼主GWBailang
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/20 12:09
  • 上次更新2023/11/2 12:36:30
查看原帖
求助
559442
GWBailang楼主2023/10/20 12:09

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;
}
2023/10/20 12:09
加载中...