11019 | 2024-06-06 16:02:25 | gortomi | A Day in Olbia | python3 | Futási hiba 0/100 | 18ms | 3096 KiB |
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
vector<vector<int> > g;
vector<bool> vis;
vector<int> s;
const int e = 100000;
int db[200005];
ll f, m;
ll ans = 0;
void calc(int v, int p)
{
s[v] = 1;
for(auto x : g[v])
{
if(x > m) break;
if(vis[x] || x == p) continue;
calc(x, v);
s[v] += s[x];
}
}
int findc(int v, int p, int bp)
{
for(auto x : g[v])
{
if(x > m) break;
if(x == p || vis[x]) continue;
if(s[x] > s[bp] / 2) return findc(x, v, bp);
}
return v;
}
vector<ll> act;
void dfs(int v, int p, int dep)
{
for(auto x : g[v])
{
if(x > m) break;
if(vis[x] || x == p) continue;
dfs(x, v, dep + 1);
}
ll mul = dep - v * f;
if(abs(mul) <= e)
{
ans += db[e - mul];
act.push_back(mul + e);
}
}
void dec(int v)
{
calc(v, -1);
int c = findc(v, -1, v);
vis[c] = 1;
vector<int> fi;
db[e - v * f]++;
for(auto x : g[c])
{
act.clear();
if(x > m) break;
if(vis[x]) continue;
dfs(x, -1, 1);
for(auto y : act) db[y]++, fi.push_back(y);
}
db[e - f * v]--;
for(auto x : fi) db[x]--;
for(auto x : g[c])
{
if(x > m) break;
if(vis[x]) continue;
dec(x);
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
g.resize(n);
vis.resize(n);
s.resize(n);
for(int i = 0; i < n - 1; i++)
{
int x, y;
cin >> x >> y;
g[x].push_back(y);
g[y].push_back(x);
}
for(int i = 0; i < n; i++)
{
sort(g[i].begin(), g[i].end());
}
for(f = 1; f < n; f++)
{
m = n / f;
for(int j = 0; j <= m; j++)
{
if(!vis[j]) dec(j);
vis[j] = 0;
}
//cout << ans << "\n";
}
cout << ans << "\n";
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Futási hiba | 17ms | 2916 KiB | ||||
2 | Futási hiba | 17ms | 2916 KiB | ||||
subtask2 | 0/16 | ||||||
3 | Futási hiba | 17ms | 3096 KiB | ||||
4 | Futási hiba | 17ms | 2812 KiB | ||||
5 | Futási hiba | 17ms | 2916 KiB | ||||
6 | Futási hiba | 17ms | 2916 KiB | ||||
subtask3 | 0/16 | ||||||
7 | Futási hiba | 17ms | 3044 KiB | ||||
8 | Futási hiba | 17ms | 3048 KiB | ||||
9 | Futási hiba | 17ms | 2960 KiB | ||||
10 | Futási hiba | 17ms | 2916 KiB | ||||
11 | Futási hiba | 17ms | 2852 KiB | ||||
12 | Futási hiba | 18ms | 2764 KiB | ||||
13 | Futási hiba | 17ms | 2908 KiB | ||||
14 | Futási hiba | 17ms | 2936 KiB | ||||
15 | Futási hiba | 17ms | 3044 KiB | ||||
subtask4 | 0/16 | ||||||
16 | Futási hiba | 17ms | 2844 KiB | ||||
17 | Futási hiba | 17ms | 2820 KiB | ||||
subtask5 | 0/52 | ||||||
18 | Futási hiba | 17ms | 2916 KiB | ||||
19 | Futási hiba | 17ms | 2916 KiB | ||||
20 | Futási hiba | 17ms | 2916 KiB | ||||
21 | Futási hiba | 17ms | 2844 KiB | ||||
22 | Futási hiba | 17ms | 2936 KiB | ||||
23 | Futási hiba | 17ms | 2864 KiB | ||||
24 | Futási hiba | 17ms | 2952 KiB | ||||
25 | Futási hiba | 17ms | 2936 KiB | ||||
26 | Futási hiba | 17ms | 2916 KiB | ||||
27 | Futási hiba | 17ms | 2916 KiB | ||||
28 | Futási hiba | 17ms | 2824 KiB | ||||
29 | Futási hiba | 17ms | 2916 KiB | ||||
30 | Futási hiba | 17ms | 2916 KiB | ||||
31 | Futási hiba | 17ms | 2936 KiB |