mxqz玄学错误,CF和本地输出不符
  • 板块CF1572A Book
  • 楼主charleshe
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/7/23 20:50
  • 上次更新2023/10/27 18:43:47
查看原帖
mxqz玄学错误,CF和本地输出不符
477258
charleshe楼主2022/7/23 20:50

RT。

#include <iostream>
#include <queue>
#include <vector>
using namespace std;
vector<int> v[200002];
queue<int> q;
int ind[200002];
int t,n;
int k,u;
int dp[200002];
bool topo(){
	int cnt;
	for(int i=1;i<=n;i++){
		if(ind[i]==0){
			q.push(i);
			dp[i]=1;
			cnt++;
		}
	}
	while(!q.empty()){
		int x=q.front();
		q.pop();
		for(auto y:v[x]){
			dp[y]=max(dp[y],dp[x]+(x>y));
			if(--ind[y]==0){
				q.push(y);
				cnt++;
			}
		}
	}
	return cnt<n;
}
int main(){
	cin>>t;
	while(t--){
		cin>>n;
		for(int i=1;i<=n;i++){
			v[i].clear();
			ind[i]=0;
			dp[i]=-1;
		}
		for(int i=1;i<=n;i++){
			cin>>k;
			for(int j=1;j<=k;j++){
				cin>>u;
				v[u].push_back(i);
				ind[i]++;
			}
		}
		if(topo()) cout<<"-1\n";
		else{
			int maxn=0;
			for(int i=1;i<=n;i++) maxn=max(maxn,dp[i]);
			cout<<maxn<<endl;
		}
	}
	return 0;
}

本地样例是对的,结果CF里面一个-1变成了0,求助万能的谷民

2022/7/23 20:50
加载中...