ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#213547 | #573. t2 | ThySecret | 70 | 6100ms | 31716kb | C++11 | 2.7kb | 2024-11-12 20:33:38 | 2024-11-12 23:34:17 |
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define x first
#define y second
#define File(a) freopen(a".in", "r", stdin), freopen(a".out", "w", stdout)
inline void debug() { cerr << '\n'; }
template<typename Type, typename... Other>
inline void debug(const Type& x, const Other&... y) { cerr << x << ' '; debug(y...); }
#define DEBUG(a...) cerr << "[" << #a << "] = ", debug(a);
typedef long long LL;
typedef pair<int, int> PII;
const int N = 100010;
const int INF = 0x3f3f3f3f;
template<typename Type>
inline void read(Type &res)
{
res = 0;
int ch = getchar(), flag = 0;
while (!isdigit(ch)) flag |= ch == '-', ch = getchar();
while (isdigit(ch)) res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
res = flag ? -res : res;
}
template<typename Type, typename... Other>
inline void read(Type &res, Other&... y) { read(res), read(y...); }
int n, q;
// int h[N], e[N << 1], ne[N << 1], w[N << 1], idx;
int sz[N], pre[N], stk[N], top;
vector<PII> g[N];
int ans[N], vis[N];
// inline void add(int a, int b, int c) { e[++ idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx; }
int rt(int x) { return pre[x] == x ? x : pre[x] = rt(pre[x]); }
inline void merge(int a, int b)
{
int pa = rt(a), pb = rt(b);
if (pa == pb) return;
sz[pb] += sz[pa], pre[pa] = pb;
}
inline void divide(int x, int a, int b)
{
g[1].emplace_back(a, b), g[x].emplace_back(a, b);
for (int i = 2; i <= x / i; i ++)
if (x % i == 0)
{
g[i].emplace_back(a, b);
if (i != x / i) g[x / i].emplace_back(a, b);
}
}
signed main()
{
iota(pre, pre + N, 0);
for (int i = 1; i < N; i ++) sz[i] = 1;
// memset(h, -1, sizeof h), idx = -1;
read(n, q);
for (int i = 1; i < n; i ++)
{
int a, b, c; read(a, b, c);
// add(a, b, c), add(b, a, c);
divide(c, a, b);
}
for (int cur = 1; cur <= n; cur ++)
{
for (PII ver : g[cur])
{
int u = ver.x, v = ver.y;
// stk[++ top] = u, stk[++ top] = v;
if (vis[u] != cur) vis[u] = cur, stk[++ top] = u;
if (vis[v] != cur) vis[v] = cur, stk[++ top] = v;
merge(u, v);
}
for (int ver = 1; ver <= top; ver ++)
{
if (rt(stk[ver]) == stk[ver])
{
ans[cur] += (sz[stk[ver]] * (sz[stk[ver]] - 1)) / 2;
sz[stk[ver]] = 1;
}
}
while (top) pre[stk[top]] = stk[top], sz[stk[top]] = 1, top --;
}
while (q --)
{
int x; read(x);
cout << ans[x] << '\n';
}
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 4ms
memory: 5128kb
input:
50 50 48 29 49788 47 48 31142 35 48 28665 10 35 23889 39 35 6411 50 39 66666 43 35 27629 46 10 49173...
output:
2 0 0 0 0 2 0 0 0 0 0 0 1 10 0 0 1 0 0 2 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 1 2 0 0 0 0
result:
wrong answer 2nd words differ - expected: '1', found: '0'
Subtask #2:
score: 30
Accepted
Test #11:
score: 30
Accepted
time: 100ms
memory: 16140kb
input:
100000 100000 73595 40695 76 13615 40695 96 65545 13615 84 19391 13615 76 2353 73595 27 26730 40695 ...
output:
12815 1065 2028 53298 627586 19060 4345 1010 16097 1032 1044 1054 3191 16097 1055 627586 19060 978 9...
result:
ok 100000 tokens
Test #12:
score: 0
Accepted
time: 62ms
memory: 16032kb
input:
100000 100000 73595 40695 70 13615 73595 52 65545 73595 51 19391 73595 72 2353 19391 18 26730 13615 ...
output:
975 1028 15852 1040 15852 5571 23908 49914 1010 15852 646494 12387 4999950000 20056 2104 4999950000 ...
result:
ok 100000 tokens
Test #13:
score: 0
Accepted
time: 55ms
memory: 16008kb
input:
100000 100000 73595 40695 64 13615 40695 61 65545 13615 71 19391 65545 15 2353 19391 9 26730 19391 4...
output:
1041 2062 14285 23281 49485 12419 996 1018 1011 19672 19672 1036 23281 3195 4999950000 12419 1018 20...
result:
ok 100000 tokens
Test #14:
score: 0
Accepted
time: 59ms
memory: 15788kb
input:
100000 100000 73595 40695 58 13615 73595 70 65545 40695 38 19391 13615 58 2353 13615 47 26730 40695 ...
output:
23392 993 1036 13972 5412 1022 19503 3237 48221 23392 981 958486 1004 980 23392 993 48221 1020 980 1...
result:
ok 100000 tokens
Test #15:
score: 0
Accepted
time: 53ms
memory: 16044kb
input:
100000 100000 73595 40695 52 13615 40695 26 65545 73595 58 19391 40695 1 2353 13615 38 26730 13615 9...
output:
1021 48268 4999950000 998 2011 94940 1049 19311 19311 33716 48268 15508 2124 1040 985 15508 8140 482...
result:
ok 100000 tokens
Test #16:
score: 0
Accepted
time: 57ms
memory: 16048kb
input:
100000 100000 73595 40695 46 13615 73595 35 65545 40695 25 19391 13615 97 2353 40695 76 26730 65545 ...
output:
12645 997 1042 4999950000 1060 23020 4222 974 5631 19302 2078 1030 48335 2033 1002 1986 1018 6806 19...
result:
ok 100000 tokens
Test #17:
score: 0
Accepted
time: 66ms
memory: 16064kb
input:
100000 100000 73595 40695 40 13615 40695 91 65545 73595 45 19391 73595 40 2353 40695 67 26730 2353 4...
output:
9577 5383 23807 997 941 1013 19428 1003 95552 1024 49914 12451 2082 1109 49914 95552 49914 499995000...
result:
ok 100000 tokens
Test #18:
score: 0
Accepted
time: 50ms
memory: 16008kb
input:
100000 100000 73595 40695 34 13615 40695 100 65545 13615 12 19391 65545 83 2353 65545 58 26730 73595...
output:
4999950000 4416 2028 94412 4999950000 14337 1002 12327 23226 1038 6629 998 5505 1059 14337 2064 1042...
result:
ok 100000 tokens
Test #19:
score: 0
Accepted
time: 48ms
memory: 15780kb
input:
100000 100000 73595 40695 28 13615 73595 56 65545 40695 79 19391 13615 26 2353 65545 96 26730 65545 ...
output:
1031 93090 15639 3190 19477 1041 32364 12280 14143 47814 3110 416410 32364 22889 19477 4999950000 49...
result:
ok 100000 tokens
Test #20:
score: 0
Accepted
time: 51ms
memory: 16116kb
input:
100000 100000 73595 40695 22 13615 40695 65 65545 13615 99 19391 40695 22 2353 73595 87 26730 19391 ...
output:
33139 4999950000 3015 33139 91207 2093 944 1051 1006 1009 91207 15171 5538 33139 1031 2021 1018 9120...
result:
ok 100000 tokens
Subtask #3:
score: 40
Accepted
Test #21:
score: 40
Accepted
time: 530ms
memory: 31656kb
input:
100000 100000 73595 40695 12816 13615 73595 81821 65545 40695 75866 19391 65545 1165 2353 73595 3737...
output:
8 2270 96901 1 2085 1584 4228 9112 6 0 2 0 11 1035 2833 0 4999950000 2 2 1294 6056 2221 4398 1587 49...
result:
ok 100000 tokens
Test #22:
score: 0
Accepted
time: 536ms
memory: 31604kb
input:
100000 100000 73595 40695 44510 13615 40695 64430 65545 73595 54386 19391 73595 2608 2353 19391 4081...
output:
5830 49192 1369 1384 6 1 9 1908 6158 104 4786 2590 4786 1205 1985 1268 3 9 6158 2 10 1433 1181 4544 ...
result:
ok 100000 tokens
Test #23:
score: 0
Accepted
time: 522ms
memory: 31716kb
input:
100000 100000 73595 40695 76204 13615 73595 30686 65545 13615 16553 19391 40695 4051 2353 13615 6060...
output:
5 14002 1 3 21 16618 1046 2 2170 3188 4 2 1 1349 3 7 2 4346 1 6 3 3 1085 1 0 1 50389 552 4954 1936 1...
result:
ok 100000 tokens
Test #24:
score: 0
Accepted
time: 520ms
memory: 31600kb
input:
100000 100000 73595 40695 7898 13615 40695 13295 65545 73595 95073 19391 13615 5494 2353 13615 80398...
output:
6 1554 1510 10 2 2 2 1195 1 1972 0 3425 13 6473 0 1266 1515 4 0 17021 3 1 1628 2940 1515 1681 5551 1...
result:
ok 100000 tokens
Test #25:
score: 0
Accepted
time: 616ms
memory: 31588kb
input:
100000 100000 73595 40695 39592 13615 40695 79551 65545 13615 57240 19391 73595 23290 2353 40695 838...
output:
762017 4394 26 4394 3 3 7667 4186 0 4606 1619 3964 4999950000 0 2129 21 0 1619 1085 762017 1 4 1414 ...
result:
ok 100000 tokens
Test #26:
score: 0
Accepted
time: 682ms
memory: 31552kb
input:
100000 100000 73595 40695 71286 13615 73595 62160 65545 40695 35760 19391 65545 24733 2353 40695 362...
output:
1 3594 11033 1 4200 5476 2 3 1030 2390 2 0 3893 1 1522 1258 1094 20754 5 0 1030 16814 1258 0 14 2 3 ...
result:
ok 100000 tokens
Test #27:
score: 0
Accepted
time: 534ms
memory: 31664kb
input:
100000 100000 73595 40695 2980 13615 40695 28416 65545 73595 97927 19391 13615 26176 2353 65545 7065...
output:
4185 1154 5 54445 2083 0 1138 0 1322 1685 1134 5589 15 0 1 0 8 5 7 2905 1083 1313 2339 1935 0 3042 2...
result:
ok 100000 tokens
Test #28:
score: 0
Accepted
time: 517ms
memory: 31528kb
input:
100000 100000 73595 40695 34674 13615 73595 11025 65545 40695 60094 19391 40695 27619 2353 65545 268...
output:
0 5 24932 0 1298 8408 2 1037 1 1 0 3 3310 4 0 4062 1386 2441 3698 3410 1079 92899 1835 1639 7124 0 1...
result:
ok 100000 tokens
Test #29:
score: 0
Accepted
time: 510ms
memory: 31592kb
input:
100000 100000 73595 40695 98062 13615 73595 59890 65545 13615 781 19391 73595 46858 2353 73595 50085...
output:
1 0 2254 2 3 0 4 0 3853 5 3476 1901 41 4 1298 4600 0 5 0 5767 3 56 3959 1428 2 5 7339 2659 3959 3 68...
result:
ok 100000 tokens
Test #30:
score: 0
Accepted
time: 528ms
memory: 31436kb
input:
100000 100000 73595 40695 29756 13615 40695 26146 65545 40695 79301 19391 65545 48301 2353 19391 698...
output:
1393 0 5859 1549 7 1289 3848 1463 10016 1 2 3 12725 2139 3 5 2440 4295 11225 1762 0 1 2842 1 1289 5 ...
result:
ok 100000 tokens