只输出0求调
查看原帖
只输出0求调
551630
Lemon_zqp楼主2024/6/16 21:06
#include<bits/stdc++.h>
#define int long long
const int mod = 1e9 + 7;
using namespace std;

bool vis[1005], a[1005], g2[1005][1005];
vector<int> g[1005];
queue<int> q;
int dp[1005], in[1005];

void topsort(int n){
	for(int i = 1; i <= n; i++){
		if(in[i] == 0){
			q.push(i);
			dp[i] = 1;
		}
	}
	while(!q.empty()){
		int u = q.front();
		q.pop();
		for(int v: g[u]){
			dp[v] = max(dp[v], dp[u] + 1);
			if(--in[v] == 0){
				q.push(v);
			}
		}
	}
}

signed main()
{
	int n, m;
	cin >> n >> m;
	while(m--){
		int s;
		cin >> s;
		memset(vis, false, sizeof(vis));
		for(int i = 1; i <= s; i++){
			cin >> a[i];
			vis[a[i]] = true;
		}
		for(int i = a[1]; i <= a[s]; i++){
			if(vis[i]){
				continue;
			}
			for(int j = 1; j <= s; j++){
				if(g2[i][a[j]]) continue;
				g[i].push_back(a[j]);
				g2[i][a[j]] = true;
				in[a[j]]++;
			}
		}
	}
	int maxn = -1e9;
	for(int i = 1; i <= n; i++){
		maxn = max(maxn, dp[i]);
	}
	cout << maxn;
	return 0;
}
2024/6/16 21:06
加载中...