为啥只过了样例,求助大佬
  • 板块P1113 杂务
  • 楼主witw
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/1/16 14:18
  • 上次更新2023/10/28 12:14:32
查看原帖
为啥只过了样例,求助大佬
570507
witw楼主2022/1/16 14:18
#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
const int N=10005;
int e[N],ne[N],h[N],q[N],d[N],t[N],tt[N],idx;
void add(int y,int x){
	e[idx]=y,ne[idx]=h[x],h[x]=idx++;
} 
void topsort(int n){
	queue<int>q;
	for(int i=1;i<=n;++i){
		if(d[i]==0){
			q.push(i);
			tt[i]=t[i];
		}
	}
	while(!q.empty()){
		int x=q.front();
		q.pop();
		for(int i=h[x];i!=-1;i=ne[i]){
			int k=e[i];
			d[k]--;
			tt[k]=max(tt[k],t[k]+tt[x]);
			if(d[k]==0)q.push(k);
		}
	}
}
int main(){
	int i,idx,n,x,s,m;
	idx=0;
	memset(h,-1,sizeof h);
	cin>>n;
	for(i=1;i<=n;++i){
		cin>>m>>t[i];
		s=0;
		while(1){
			cin>>x;
			if(x==0)break;
			add(m,x);
			++s; 
		}
		d[m]=s;
	}
	topsort(n);
	cout<<tt[n];
	return 0;
} 
2022/1/16 14:18
加载中...