提出 #54843426
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define fi first
#define se second
#define pb push_back
#pragma GCC optimize("unroll-loops,O3")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#define cok cout << (ok ? "YES\n" : "NO\n");
#define dbg(x) cout << (#x) << ": " << x << endl;
#define dbga(x,l,r) cout << (#x) << ": "; for (int ii=l;ii<r;ii++) cout << x[ii] << " "; cout << endl;
#define int long long
#define pi pair<int, int>
const int N = 1e6+9;
int n, ans, a[N], sz[N];
vector<int> vec[N];
map<int, pi> *mp[N];
int add[N];
void dfs(int v, int p = -1) {
sz[v] = 1;
pi mx = {-1, -1};
for (int u: vec[v]) {
if (u == p) continue;
dfs(u, v);
sz[v] += sz[u];
mx = max(mx, pi{sz[u], u});
}
if (mx.se == -1) {
mp[v] = new map<int, pi>;
(*mp[v])[a[v]] = {1, 0};
return;
}
mp[v] = mp[mx.se];
add[v] = add[mx.se] + 1;
ans += (*mp[v])[a[v]].se + (*mp[v])[a[v]].fi * add[v];
// dbg(a[v]);
// dbg((*mp[v])[a[v]].se + (*mp[v])[a[v]].fi * add[v]);
(*mp[v])[a[v]].fi++;
(*mp[v])[a[v]].se -= add[v];
for (int u: vec[v]) {
if (u == mx.se || u == p) continue;
for (auto [color, para]: *mp[u]) {
// dbg(color << " " << v + 1);
// dbg(((*mp[v])[color].se + (*mp[v])[color].fi * add[v]) * (para.se + para.fi * (add[u] + 1)));
ans += ((*mp[v])[color].se + (*mp[v])[color].fi * add[v]) * para.fi + (para.se + para.fi * (add[u] + 1)) * (*mp[v])[a[v]].fi;
}
for (auto [color, para]: *mp[u]) {
(*mp[v])[color].fi += para.fi;
(*mp[v])[color].se += para.se + para.fi * add[u] - para.fi * add[v];
}
}
// dbg(v + 1);
// dbg(ans);
}
signed main() {
cin.tie(0); ios_base::sync_with_stdio(0);
cin >> n;
for (int i = 1; i < n; i++) {
int a, b;
cin >> a >> b;
a--;b--;
vec[a].pb(b);
vec[b].pb(a);
}
for (int i = 0; i < n; i++) cin >> a[i];
dfs(0);
cout << ans;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | G - Sum of Tree Distance |
| ユーザ | polosatic |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 0 |
| コード長 | 2142 Byte |
| 結果 | WA |
| 実行時間 | 555 ms |
| メモリ | 133212 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||||
|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 0 / 600 | ||||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_01.txt, 00_sample_02.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt, 01_test_37.txt, 01_test_38.txt, 01_test_39.txt, 01_test_40.txt, 01_test_41.txt, 01_test_42.txt, 01_test_43.txt, 01_test_44.txt, 01_test_45.txt, 01_test_46.txt, 01_test_47.txt, 01_test_48.txt, 01_test_49.txt, 01_test_50.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_01.txt | AC | 5 ms | 3496 KiB |
| 00_sample_02.txt | AC | 5 ms | 3436 KiB |
| 01_test_01.txt | WA | 85 ms | 23356 KiB |
| 01_test_02.txt | WA | 265 ms | 61008 KiB |
| 01_test_03.txt | WA | 346 ms | 78640 KiB |
| 01_test_04.txt | WA | 95 ms | 26288 KiB |
| 01_test_05.txt | WA | 54 ms | 16380 KiB |
| 01_test_06.txt | WA | 384 ms | 85292 KiB |
| 01_test_07.txt | WA | 153 ms | 38764 KiB |
| 01_test_08.txt | WA | 129 ms | 41080 KiB |
| 01_test_09.txt | WA | 112 ms | 40548 KiB |
| 01_test_10.txt | WA | 119 ms | 44236 KiB |
| 01_test_11.txt | WA | 158 ms | 44824 KiB |
| 01_test_12.txt | WA | 152 ms | 44212 KiB |
| 01_test_13.txt | WA | 166 ms | 48036 KiB |
| 01_test_14.txt | WA | 180 ms | 46928 KiB |
| 01_test_15.txt | WA | 139 ms | 51616 KiB |
| 01_test_16.txt | WA | 292 ms | 76900 KiB |
| 01_test_17.txt | WA | 260 ms | 72324 KiB |
| 01_test_18.txt | WA | 214 ms | 66352 KiB |
| 01_test_19.txt | WA | 149 ms | 57720 KiB |
| 01_test_20.txt | WA | 212 ms | 66116 KiB |
| 01_test_21.txt | WA | 109 ms | 36604 KiB |
| 01_test_22.txt | WA | 134 ms | 42476 KiB |
| 01_test_23.txt | WA | 391 ms | 84720 KiB |
| 01_test_24.txt | WA | 383 ms | 81988 KiB |
| 01_test_25.txt | WA | 341 ms | 73652 KiB |
| 01_test_26.txt | WA | 97 ms | 34044 KiB |
| 01_test_27.txt | WA | 151 ms | 40688 KiB |
| 01_test_28.txt | WA | 404 ms | 84256 KiB |
| 01_test_29.txt | WA | 428 ms | 93036 KiB |
| 01_test_30.txt | WA | 431 ms | 91360 KiB |
| 01_test_31.txt | AC | 96 ms | 58212 KiB |
| 01_test_32.txt | AC | 83 ms | 58212 KiB |
| 01_test_33.txt | AC | 97 ms | 58212 KiB |
| 01_test_34.txt | AC | 85 ms | 58172 KiB |
| 01_test_35.txt | WA | 86 ms | 45648 KiB |
| 01_test_36.txt | WA | 96 ms | 45576 KiB |
| 01_test_37.txt | WA | 130 ms | 45500 KiB |
| 01_test_38.txt | WA | 108 ms | 45648 KiB |
| 01_test_39.txt | WA | 136 ms | 45584 KiB |
| 01_test_40.txt | WA | 133 ms | 45508 KiB |
| 01_test_41.txt | AC | 209 ms | 70712 KiB |
| 01_test_42.txt | AC | 204 ms | 70712 KiB |
| 01_test_43.txt | AC | 191 ms | 64388 KiB |
| 01_test_44.txt | AC | 242 ms | 64384 KiB |
| 01_test_45.txt | WA | 555 ms | 133212 KiB |
| 01_test_46.txt | WA | 553 ms | 125376 KiB |
| 01_test_47.txt | WA | 422 ms | 92672 KiB |
| 01_test_48.txt | WA | 403 ms | 87016 KiB |
| 01_test_49.txt | WA | 485 ms | 105544 KiB |
| 01_test_50.txt | WA | 457 ms | 97848 KiB |