为什么会RE
查看原帖
为什么会RE
1042056
zhangjunxian1234楼主2023/9/9 17:26

这是我的程序:

#include "bits/stdc++.h"
using namespace std;
const int N=2010;
int n,m,ans,a[N],s,i,j,u;
vector<int> t[N];
int z[N],k[N];
void dfs(int u){
    if(z[u]) return;
    for(int i=1;i<=t[u].size();i++){
        if(!z[t[u][i]]) dfs(t[u][i]);
        z[u]=max(z[u],z[t[u][i]]+1);
    }
    if(u>n) z[u]--;
    ans=max(ans,z[u]);
}
signed main(void){
    scanf("%d%d",&n,&m);
    for(i=1;i<=m;i++){
        scanf("%d",&s);
        for(j=1;j<=s;j++)
		{
			scanf("%d",&a[j]);
			k[a[j]]=i;
			t[n+i].push_back(a[j]);
		}
        for(j=a[1]+1;j<a[s];j++)
		{
			if(k[j]!=i) t[j].push_back(n+i);
		}   
    }
    for(i=1;i<=n;i++) if(!z[i]) dfs(i);
    printf("%d",ans+1);
}

为什么会运行出错。

2023/9/9 17:26
加载中...