MLE80啊啊啊啊,求巨佬调
查看原帖
MLE80啊啊啊啊,求巨佬调
1113126
Statax楼主2024/4/1 12:50
#include<bits/stdc++.h>
using namespace std;
const int N=1005;

int n,m;
int len;
int i,j,k;
int deg[N],stop[N];
bool will[N];
vector<int>G[N];
 
int toposort(){
	int ans=0;
	queue<pair<int,int>>q;
	for(int i=1;i<=n;i++)
		if(!deg[i])
			q.push({i,1});
		
	int x,now;	
	while(!q.empty()){
		x=q.front().first;
		now=q.front().second;
		ans=now;q.pop();
		
		for(auto y:G[x]){
			if(!--(deg[y])){
				q.push({y,now+1});
			}
		}
	}
	
	return ans;
}

int main(){
	cin>>n>>m;
	
	for(i=1;i<=m;i++){
		memset(will,0,sizeof(will));
		cin>>len>>stop[1];
		
		for(j=2;j<=len;j++){
			cin>>stop[j];
			for(k=stop[j-1]+1;k<stop[j];k++){
				will[k]=1;	
			}
		}	
		
		for(j=1;j<=len;j++){
			for(k=stop[1]+1;k<stop[len];k++){
				if(will[k]){
					G[stop[j]].push_back(k);
					deg[k]++;
				}
			}
		}
	}	
	
	cout<<toposort()<<endl;
	return 0;
}
2024/4/1 12:50
加载中...