結果
| 問題 |
No.1098 LCAs
|
| コンテスト | |
| ユーザー |
fastmath
|
| 提出日時 | 2020-06-26 21:41:41 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,078 bytes |
| コンパイル時間 | 1,611 ms |
| コンパイル使用メモリ | 169,108 KB |
| 実行使用メモリ | 5,888 KB |
| 最終ジャッジ日時 | 2024-07-04 20:16:17 |
| 合計ジャッジ時間 | 4,778 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 15 RE * 13 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ii pair <int, int>
#define app push_back
#define all(a) a.begin(), a.end()
#define bp __builtin_popcountll
#define ll long long
#define mp make_pair
#define f first
#define s second
#define Time (double)clock()/CLOCKS_PER_SEC
const int N = 1e5+7;
vector <int> tree[N];
int ans[N];
int cnt[N];
void dfs(int u, int p) {
cnt[u] = 1;
for (int v : tree[u]) {
if (v == p)
continue;
dfs(v, u);
cnt[u] += cnt[v];
}
ans[u] = cnt[u] * cnt[u];
for (int v : tree[u]) {
if (v == p)
continue;
ans[u] -= cnt[v] * cnt[v];
}
}
signed main() {
#ifdef HOME
freopen("input.txt", "r", stdin);
#else
#define endl '\n'
ios_base::sync_with_stdio(0); cin.tie(0);
#endif
int n;
cin >> n;
for (int i = 1; i <= n - 1; ++i) {
int u, v;
cin >> u >> v;
tree[u].app(v); tree[v].app(u);
}
dfs(1, 1);
for (int i = 1; i <= n; ++i)
cout << ans[i] << endl;
}
fastmath