代码提交时一直段错误,是爆栈了吗?看了好几遍,实在不知道哪错了!😫😔
#include <bits/stdc++.h> using namespace std; #define LL long long const int MAXN = 1e5 +50; const int MOD = 1e9 +3; int N; vector<int> child[MAXN]; int val[MAXN]; int maxSub(int root) { int ret = 0; for(int ch:child[root]) { int cur = maxSub(ch); if(cur > 0) ret = (ret + cur)% MOD; } if(val[root] > 0) ret = (ret + val[root]) % MOD; return ret; } int main() { while(cin >> N) { int v,fa; for(int i = 0; i < N; i++) child[i].clear(); for(int i = 0; i < N; i++) { cin >> v >> fa; val[i] = v; if(i != 0) child[fa - 2].push_back(i); } /*for(int i = 0; i < N; i++) { cout << "ch:" << " "; for(int ch:child[i]) cout << ch << " "; cout << endl; }*/ int res = maxSub(0); cout << res << endl; } return 0; }
全部评论
(1) 回帖