有没有大佬帮着优化一下空间(大悲
查看原帖
有没有大佬帮着优化一下空间(大悲
1025479
LIXE_115楼主2023/7/19 23:21
#include<bits/stdc++.h>
using namespace std;
int r[100000],M,n,sum[100000];
struct point{
	int c[10000],chu;
	int is;
	int ans;
}p[10000];
bool k[5005];
void tuopu(){
	int ss=n;
	while(ss>=0){
		for(int i=1;i<=n;i++){
			if(k[i]!=true&&r[i]==0){
				k[i]=true;
				int q=0;
				while(p[i].c[q]!=0){
					r[p[i].c[q]]--;
					p[p[i].c[q]].ans+=p[i].ans;
					q++;
				}
			}
		}
		ss--;	
	}
	return;
}
bool cmp(point A,point B){
	return A.ans>B.ans;
}
int main(){
	cin>>n>>M;
	int a,b;
	for(int i=0;i<M;i++){
		cin>>a>>b;
		r[b]++;
		p[a].c[p[a].is]=b;
		p[a].is++;
		p[a].chu++;
	}
	int l=1;
	for(int i=1;i<=n;i++){
		if(r[i]==0){
			p[i].ans=1;
			
		}
		if(p[i].chu==0&&r[i]!=0){
			sum[l]=i;
			l++;
		}
	}
	tuopu();
	anss=0;
	for(int i=1;i<=l;i++){
		anss+=p[sum[i]].ans;
	}

	cout<<anss;
	return 0;
}

就结构体的p与c数组没法开大了(

2023/7/19 23:21
加载中...