求助 急
  • 板块灌水区
  • 楼主a_little_carrot
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/6/14 20:22
  • 上次更新2024/6/14 22:38:30
查看原帖
求助 急
1042960
a_little_carrot楼主2024/6/14 20:22
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int mod=1000000007 ;
ll n,ans ;
vector<int> t[200005] ;
ll f[200005] ;
inline void dfs(int s) {
	cout<<s<<" " ;
	if(!sizeof(t[s]))return ;
	for(int i=0;i<sizeof(t[s]);++i) {
		dfs(t[s][i]) ;
		f[s]=(f[s]+f[t[s][i]])%mod ;
	}
}
int main() {
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0) ;
	cin>>n ;
	f[1]=1 ;
	for(int i=2,x;i<=n;++i) {
		cin>>x ;
		t[x].push_back(i) ;
		f[i]=1 ;
		cout<<x<<" "<<i<<" "<<n<<endl ;
	}
	dfs(1) ;//这里直接re了
	for(int i=1;i<=n;++i) {
		ans=(ans+f[i])%mod ;
	}
	cout<<ans ;
	return 0 ;
}

求说明

2024/6/14 20:22
加载中...