Submission #1883114
Source Code Expand
#include <bits/stdc++.h> #define REP(i,n) for(int i=0; i<(int)(n); ++i) #define FOR(i,k,n) for(int i=(k);i<(int)(n);++i) typedef long long int ll; using namespace std; ll dp[2010][2]; ll nb_depth[2010]; vector<int> G[2010]; const ll MOD = 1e9+7; void count_depth(int v, int depth){ nb_depth[depth]++; REP(i, G[v].size()){ count_depth(G[v][i], depth+1); } } ll mpow(ll a, ll b){ if(b == 0) return 1; if(b < 0) return 0; if(b%2) return (a*mpow(a, b-1)) % MOD; ll ret = mpow(a, b/2); return (ret*ret)%MOD; } void dfs(int v, int d) { if(d == 0) { dp[v][0] = dp[v][1] = 1; return; } ll x = 1, y = 1; for(auto c: G[v]) { dfs(c, d-1); x = (x * dp[c][0]) % MOD; y = (y * (dp[c][0]+dp[c][1])) % MOD; } for(auto c: G[v]) { // n^{-1} mod p = n^{p-2} mod p dp[v][1] += ((x * mpow(dp[c][0], MOD-2)) % MOD * dp[c][1]) % MOD; dp[v][1] %= MOD; } dp[v][0] = (y - dp[v][1] + MOD) % MOD; } int main(void) { int N; cin >> N; if(N>2000) return 0; REP(i, N) { int p; cin >> p; G[p].push_back(i+1); } count_depth(0, 0); ll ans = 0; REP(d, N+1) { REP(j, 2010) { REP(k, 2) { dp[j][k] = 0; } } dfs(0, d); ans = (ans + dp[0][1] * mpow(2, N-nb_depth[d]+1)) % MOD; } cout << ans << endl; }
Submission Info
Submission Time | |
---|---|
Task | E - Smuggling Marbles |
User | kivantium |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 1483 Byte |
Status | WA |
Exec Time | 1149 ms |
Memory | 640 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 | 1 ms | 384 KB |
00_example_02.txt | AC | 1 ms | 384 KB |
00_example_03.txt | AC | 2 ms | 384 KB |
s1_01.txt | AC | 136 ms | 384 KB |
s1_02.txt | AC | 84 ms | 384 KB |
s1_03.txt | AC | 427 ms | 384 KB |
s1_04.txt | AC | 3 ms | 384 KB |
s1_05.txt | AC | 62 ms | 384 KB |
s1_06.txt | AC | 1111 ms | 384 KB |
s1_07.txt | AC | 84 ms | 384 KB |
s1_08.txt | AC | 575 ms | 640 KB |
s1_09.txt | AC | 44 ms | 384 KB |
s1_10.txt | AC | 1129 ms | 384 KB |
s1_11.txt | AC | 85 ms | 384 KB |
s1_12.txt | AC | 424 ms | 384 KB |
s1_13.txt | AC | 3 ms | 384 KB |
s1_14.txt | AC | 1149 ms | 512 KB |
s1_15.txt | AC | 1147 ms | 384 KB |
s1_16.txt | AC | 1139 ms | 384 KB |
s1_17.txt | AC | 1149 ms | 384 KB |
s2_01.txt | WA | 1 ms | 256 KB |
s2_02.txt | WA | 1 ms | 256 KB |
s2_03.txt | WA | 1 ms | 256 KB |
s2_04.txt | WA | 1 ms | 256 KB |
s2_05.txt | WA | 1 ms | 256 KB |
s2_06.txt | WA | 1 ms | 256 KB |
s2_07.txt | WA | 1 ms | 256 KB |
s2_08.txt | WA | 1 ms | 256 KB |
s2_09.txt | WA | 1 ms | 256 KB |
s2_10.txt | WA | 1 ms | 256 KB |
s2_11.txt | WA | 1 ms | 256 KB |
s2_12.txt | WA | 1 ms | 256 KB |
s2_13.txt | WA | 1 ms | 256 KB |
s2_14.txt | WA | 1 ms | 256 KB |
s2_15.txt | WA | 1 ms | 256 KB |
s2_16.txt | WA | 1 ms | 256 KB |
s2_17.txt | WA | 1 ms | 256 KB |
s2_18.txt | WA | 1 ms | 256 KB |
s2_19.txt | WA | 1 ms | 256 KB |
s2_20.txt | WA | 1 ms | 256 KB |
s2_21.txt | WA | 1 ms | 256 KB |
s2_22.txt | WA | 1 ms | 256 KB |
s2_23.txt | WA | 1 ms | 256 KB |
s2_24.txt | WA | 1 ms | 256 KB |
s2_25.txt | WA | 1 ms | 256 KB |
s2_26.txt | WA | 1 ms | 256 KB |
s2_27.txt | WA | 1 ms | 256 KB |
s2_28.txt | WA | 1 ms | 256 KB |
s2_29.txt | WA | 1 ms | 256 KB |
s2_30.txt | WA | 1 ms | 256 KB |
s2_31.txt | WA | 1 ms | 256 KB |
s2_32.txt | WA | 1 ms | 256 KB |