提出 #35596646
ソースコード 拡げる
#include <bits/stdc++.h> #include <atcoder/modint> using mint = atcoder::modint998244353; using namespace std; typedef long long ll; #define rep(i,a,n) for (ll i=a;i<(ll)n;i++) #define per(i,a,n) for (ll i=n;i-->(ll)a;) ll read(){ll r;scanf("%lld",&r);return r;} const int PWR=22; int fa[300010]; mint cnt[300010][PWR]; // cnt[u][从这向下dep] = 方案数 mint sum[300010][PWR]; // u的子一层 cnt之和 mint toroot(int u,int d,mint x){ if(d==PWR)return 0; if(u==1){ cnt[u][d]+=x; return x; } int v=fa[u]; // v-> mint inc = x*(sum[v][d+1]-cnt[u][d]); // sum[v][d+1] = sum( cnt[...child][d+1]) sum[v][d+1]+=x; cnt[u][d] +=x; return toroot(v,d+1,inc); } int main(){ int n = read(); rep(i,2,n+1) fa[i]=read(); mint ans=0; rep(k,1,n+1){ ans+=toroot(k,0,1); printf("%d\n",ans.val()); } return 0; }
提出情報
提出日時 | |
---|---|
問題 | Ex - Perfect Binary Tree |
ユーザ | cromarmot |
言語 | C++ (GCC 9.2.1) |
得点 | 600 |
コード長 | 850 Byte |
結果 | AC |
実行時間 | 154 ms |
メモリ | 56548 KiB |
コンパイルエラー
./Main.cpp: In function ‘ll read()’: ./Main.cpp:10:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] 10 | ll read(){ll r;scanf("%lld",&r);return r;} | ~~~~~^~~~~~~~~~~
ジャッジ結果
セット名 | Sample | All | ||||
---|---|---|---|---|---|---|
得点 / 配点 | 0 / 0 | 600 / 600 | ||||
結果 |
|
|
セット名 | テストケース |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt |
ケース名 | 結果 | 実行時間 | メモリ |
---|---|---|---|
sample_01.txt | AC | 45 ms | 55216 KiB |
sample_02.txt | AC | 44 ms | 55264 KiB |
sample_03.txt | AC | 38 ms | 55192 KiB |
sample_04.txt | AC | 42 ms | 55376 KiB |
test_01.txt | AC | 99 ms | 56092 KiB |
test_02.txt | AC | 111 ms | 56212 KiB |
test_03.txt | AC | 63 ms | 55840 KiB |
test_04.txt | AC | 122 ms | 56132 KiB |
test_05.txt | AC | 74 ms | 55560 KiB |
test_06.txt | AC | 131 ms | 56360 KiB |
test_07.txt | AC | 125 ms | 56072 KiB |
test_08.txt | AC | 83 ms | 55664 KiB |
test_09.txt | AC | 57 ms | 55392 KiB |
test_10.txt | AC | 83 ms | 56084 KiB |
test_11.txt | AC | 45 ms | 55160 KiB |
test_12.txt | AC | 104 ms | 56532 KiB |
test_13.txt | AC | 75 ms | 55596 KiB |
test_14.txt | AC | 85 ms | 56180 KiB |
test_15.txt | AC | 125 ms | 56296 KiB |
test_16.txt | AC | 59 ms | 55512 KiB |
test_17.txt | AC | 87 ms | 56008 KiB |
test_18.txt | AC | 57 ms | 55588 KiB |
test_19.txt | AC | 75 ms | 55836 KiB |
test_20.txt | AC | 54 ms | 55440 KiB |
test_21.txt | AC | 119 ms | 56312 KiB |
test_22.txt | AC | 117 ms | 56360 KiB |
test_23.txt | AC | 82 ms | 56432 KiB |
test_24.txt | AC | 150 ms | 56548 KiB |
test_25.txt | AC | 148 ms | 56312 KiB |
test_26.txt | AC | 145 ms | 56456 KiB |
test_27.txt | AC | 147 ms | 56312 KiB |
test_28.txt | AC | 147 ms | 56440 KiB |
test_29.txt | AC | 146 ms | 56396 KiB |
test_30.txt | AC | 109 ms | 56548 KiB |
test_31.txt | AC | 154 ms | 56488 KiB |
test_32.txt | AC | 105 ms | 56392 KiB |
test_33.txt | AC | 146 ms | 56364 KiB |
test_34.txt | AC | 101 ms | 56440 KiB |
test_35.txt | AC | 138 ms | 56492 KiB |
test_36.txt | AC | 97 ms | 56456 KiB |
test_37.txt | AC | 121 ms | 56440 KiB |
test_38.txt | AC | 88 ms | 56436 KiB |
test_39.txt | AC | 120 ms | 56312 KiB |
test_40.txt | AC | 114 ms | 56548 KiB |