B题80求救

高校排名 - 题目详情 - 信友队 (xinyoudui.com)
WA80(不是TLE所以才绝望啊——

#include <bits/stdc++.h>
using namespace std;
int n,m,vis[1000];
int a[1000][1000];
vector<int> mp[1005];
int ans;
void dfs(int i,int l){
	
	if(l<=vis[i]){
		return;
	}
	vis[i]=l;
	ans=max(ans,vis[i]);
	//cout<<mp[i].size()<<" ";
	if(mp[i].size()<1){
		return;
	}
	for(int j=0;j<mp[i].size();j++){
		//cout<<mp[i][j]<<" ";
		dfs(mp[i][j],l+1);
	}
}
bool ch(int x,int b){
	for(int i=1;i<=m;i++){
		if(a[i][x]>a[i][b]){
			return false;
		}
	}
	return true;
}
int main() {
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			int x;
			cin>>x;
			a[i][x]=j;
		}
	}
	for(int i=1;i<=n;i++){
		//cout<<i<<"   ";
		for(int j=i+1;j<=n;j++){
			if(ch(i,j)==true){
				mp[i].push_back(j);
				//cout<<j<<" ";
			}
		
		}
		//cout<<"\n";
	}
	for(int i=1;i<=n;i++){
		//cout<<mp[i].size()<<" ";
		dfs(i,1);
	}
	printf("%d\n",ans);
	
	
    
    return 0;
}

403 :sweat_smile:

抱歉我看不了题目,可否将题目截一下图。