Submission #3227132
Source Code Expand
#include<bits/stdc++.h> using namespace std; #define ll long long #define P 1000000007LL #define MAXN 200010 struct state { ll c0, c1, c2; state(){ c0 = 1, c1 = 1, c2 = 0; } struct state& operator += (const state &a){ c2 = (a.c1 + a.c2) *(c1 + c2) + a.c0*c2 + c0*a.c2; c1 = a.c1*c0 + a.c0*c1; c0 = a.c0*c0; c0 %= P; c1 %= P; c2 %= P; } }; vector<state> ans[MAXN]; int id[MAXN]; int level[MAXN]; int cnt[MAXN]; int p[MAXN]; vector<int> gr[MAXN]; void dfs(int u){ if(gr[u].size() == 0){ id[u] = u; ans[u].push_back(state()); return; } int ma = -1; int i_ma = 0; for(auto &v : gr[u]){ level[v] = level[u]+1; cnt[level[v]]++; dfs(v); if((int)ans[id[v]].size() > ma){ ma = ans[id[v]].size(); i_ma = v; } } id[u] = id[i_ma]; int t = ans[id[u]].size(); for(auto &v : gr[u]){ if(v == i_ma) continue; int t1 = ans[id[v]].size(); for(int i = 0; i < t1; i++){ ans[id[u]][t-1- i ] += ans[id[v]][t1-1 - i]; } } for(int i = 0; i < ma; i++){ ans[id[u]][t - 1 - i].c0 += ans[id[u]][t - 1 - i].c2; if(ans[id[u]][t - 1 - i].c0 >= P) ans[id[u]][t - 1 - i].c0 -= P; ans[id[u]][t - 1 - i].c2 = 0; } //cout << u << "\n"; ans[id[u]].push_back(state()); //for(auto &x : ans[id[u]]) cout << "(" << x.c0 << ", " << x.c1 << ", " << x.c2 << ") "; //cout << "\n"; } ll pot2[MAXN]; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); pot2[0] = 1; for(int i = 1; i < MAXN; i++){ pot2[i] = pot2[i-1] << 1; if(pot2[i] >= P ) pot2[i] -= P; } int N; cin >> N; p[0] = -1; cnt[0] = 1; for(int i = 1; i <= N; i++) { cin >> p[i]; gr[p[i]].push_back(i); } dfs(0); ll sol = 0; int t = ans[id[0]].size(); for(int l = 0; l < t; l++){ sol += ans[id[0]][t-1-l].c1 * pot2[N + 1 - cnt[l]]; sol %= P; } cout << sol << "\n"; return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Smuggling Marbles |
User | misael |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 1921 Byte |
Status | TLE |
Exec Time | 3158 ms |
Memory | 51700 KB |
Judge Result
Set Name | Sample | Subtask1 | All | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | 0 / 600 | ||||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt |
Subtask1 | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, s1_01.txt, s1_02.txt, s1_03.txt, s1_04.txt, s1_05.txt, s1_06.txt, s1_07.txt, s1_08.txt, s1_09.txt, s1_10.txt, s1_11.txt, s1_12.txt, s1_13.txt, s1_14.txt, s1_15.txt, s1_16.txt, s1_17.txt |
All | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, s1_01.txt, s1_02.txt, s1_03.txt, s1_04.txt, s1_05.txt, s1_06.txt, s1_07.txt, s1_08.txt, s1_09.txt, s1_10.txt, s1_11.txt, s1_12.txt, s1_13.txt, s1_14.txt, s1_15.txt, s1_16.txt, s1_17.txt, s2_01.txt, s2_02.txt, s2_03.txt, s2_04.txt, s2_05.txt, s2_06.txt, s2_07.txt, s2_08.txt, s2_09.txt, s2_10.txt, s2_11.txt, s2_12.txt, s2_13.txt, s2_14.txt, s2_15.txt, s2_16.txt, s2_17.txt, s2_18.txt, s2_19.txt, s2_20.txt, s2_21.txt, s2_22.txt, s2_23.txt, s2_24.txt, s2_25.txt, s2_26.txt, s2_27.txt, s2_28.txt, s2_29.txt, s2_30.txt, s2_31.txt, s2_32.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_example_01.txt | AC | 6 ms | 14336 KB |
00_example_02.txt | AC | 6 ms | 14336 KB |
00_example_03.txt | AC | 6 ms | 14336 KB |
s1_01.txt | AC | 6 ms | 14336 KB |
s1_02.txt | AC | 6 ms | 14336 KB |
s1_03.txt | AC | 6 ms | 14336 KB |
s1_04.txt | AC | 6 ms | 14336 KB |
s1_05.txt | AC | 6 ms | 14336 KB |
s1_06.txt | AC | 6 ms | 14336 KB |
s1_07.txt | AC | 6 ms | 14336 KB |
s1_08.txt | AC | 8 ms | 14720 KB |
s1_09.txt | AC | 6 ms | 14464 KB |
s1_10.txt | AC | 6 ms | 14464 KB |
s1_11.txt | AC | 6 ms | 14336 KB |
s1_12.txt | AC | 7 ms | 14336 KB |
s1_13.txt | AC | 6 ms | 14336 KB |
s1_14.txt | AC | 6 ms | 14464 KB |
s1_15.txt | AC | 6 ms | 14464 KB |
s1_16.txt | AC | 6 ms | 14464 KB |
s1_17.txt | AC | 6 ms | 14464 KB |
s2_01.txt | AC | 11 ms | 15104 KB |
s2_02.txt | AC | 7 ms | 14464 KB |
s2_03.txt | AC | 40 ms | 19968 KB |
s2_04.txt | AC | 27 ms | 18048 KB |
s2_05.txt | AC | 47 ms | 21120 KB |
s2_06.txt | AC | 60 ms | 22528 KB |
s2_07.txt | AC | 36 ms | 19840 KB |
s2_08.txt | AC | 21 ms | 17152 KB |
s2_09.txt | AC | 55 ms | 22400 KB |
s2_10.txt | AC | 44 ms | 21120 KB |
s2_11.txt | AC | 33 ms | 21364 KB |
s2_12.txt | AC | 6 ms | 14464 KB |
s2_13.txt | TLE | 3157 ms | 51700 KB |
s2_14.txt | TLE | 3157 ms | 51324 KB |
s2_15.txt | TLE | 3158 ms | 46840 KB |
s2_16.txt | AC | 10 ms | 15104 KB |
s2_17.txt | AC | 6 ms | 14464 KB |
s2_18.txt | AC | 32 ms | 20480 KB |
s2_19.txt | AC | 22 ms | 18048 KB |
s2_20.txt | AC | 64 ms | 24064 KB |
s2_21.txt | AC | 64 ms | 24704 KB |
s2_22.txt | AC | 61 ms | 23168 KB |
s2_23.txt | AC | 64 ms | 24064 KB |
s2_24.txt | AC | 61 ms | 26368 KB |
s2_25.txt | AC | 67 ms | 27392 KB |
s2_26.txt | AC | 188 ms | 28220 KB |
s2_27.txt | TLE | 3157 ms | 43796 KB |
s2_28.txt | TLE | 3157 ms | 42276 KB |
s2_29.txt | TLE | 3157 ms | 50680 KB |
s2_30.txt | TLE | 3157 ms | 50168 KB |
s2_31.txt | TLE | 3157 ms | 37748 KB |
s2_32.txt | TLE | 3157 ms | 37748 KB |