QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#583423 | #9238. Tree | Max_s_xaM | 17 | 72ms | 30240kb | C++17 | 2.1kb | 2024-09-22 19:53:56 | 2024-09-22 19:53:56 |
Judging History
answer
#include "tree.h"
#include <iostream>
#include <algorithm>
#include <vector>
#include <numeric>
typedef long long ll;
using namespace std;
const int MAXN = 2e5 + 10;
int n, fa[MAXN], wt[MAXN];
vector <int> e[MAXN];
int dfn[MAXN], clk = -1, sz[MAXN];
void DFS1(int u)
{
dfn[u] = ++clk, sz[u] = 1;
for (auto v : e[u]) DFS1(v), sz[u] += sz[v];
}
struct BIT
{
int bit[MAXN];
inline void Add(int x, int k) { for (; x <= n; x += (x & -x)) bit[x] += k; }
inline int Ask(int x) { int res = 0; for (; x; x -= (x & -x)) res += bit[x]; return res; }
inline int Ask(int l, int r) { return Ask(r) - Ask(l - 1); }
}bt;
struct DSU
{
int fa[MAXN], lst[MAXN];
int Find(int k)
{
if (k == fa[k]) return k;
int t = Find(fa[k]);
if (t == fa[k]) lst[k] = k;
else lst[k] = lst[fa[k]];
return fa[k] = t;
}
}U;
int id[MAXN], top[MAXN];
ll f[MAXN], leaf;
void init(vector <int> P, vector <int> W)
{
n = P.size();
for (int i = 0; i < n; i++) fa[i + 1] = P[i] + 1;
for (int i = 0; i < n; i++) wt[i + 1] = W[i];
for (int i = 1; i <= n; i++) e[fa[i]].push_back(i);
DFS1(0);
iota(id + 1, id + n + 1, 1);
sort(id + 1, id + n + 1, [&](int x, int y) { return wt[x] > wt[y]; });
for (int i = 1; i <= n; i++) U.fa[i] = i;
for (int i = 1; i <= n; i++)
{
int u = id[i];
if (!e[u].size()) continue;
U.fa[u] = fa[u]; U.Find(u), top[u] = U.lst[u];
}
for (int i = 1; i <= n; i++)
if (!e[i].size()) bt.Add(dfn[i], 1), leaf += wt[i];
for (int i = n; i >= 1; i--)
{
int u = id[i];
if (!e[u].size()) continue;
int x = bt.Ask(dfn[top[u]], dfn[top[u]] + sz[top[u]] - 1), y = bt.Ask(dfn[u], dfn[u] + sz[u] - 1) - 1, z = wt[u] - wt[fa[top[u]]];
// cout << u << ' ' << x << ' ' << y << ' ' << z << '\n';
f[x] += z, f[x - y] -= z;
bt.Add(dfn[u], -y);
if (fa[top[u]]) bt.Add(dfn[fa[top[u]]], y);
}
for (int i = n - 1; i; i--) f[i] += f[i + 1];
for (int i = n - 1; i; i--) f[i] += f[i + 1];
// for (int i = 1; i <= n; i++) cout << f[i] << ' '; cout << '\n';
}
ll query(int l, int r)
{
int x = min(n + 1, r / l + 1);
return (f[x] + leaf) * l - (f[x] - f[x + 1]) * (r % l);
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 43ms
memory: 29272kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 0 2 2 4 5 4 5 8 9 10 9 8 10 14 15 14 15 18 19 20 21 18 22 21 24 24 27 22 27 30 31 31 33 30 19 20 33 38 38 40 41 41 43 44 43 44 47 48 49 50 49 50 53 54 53 48 54 58 58 60 60 62 62 64 64 66 66 67 67 70 71 72 71 72 75 70 75 78 78 80 81 80 81 84 85 86 86 88 89 90...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 682654248246 834059146585 104107877065 626344246917 578222335946 1248276814116 1306128583094 417838861293 365718115496 1302019336262
result:
ok
Test #2:
score: 10
Accepted
time: 34ms
memory: 29472kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 0 2 2 4 5 6 7 7 9 9 11 12 11 5 13 12 6 4 13 20 21 20 21 24 25 25 27 28 27 28 29 32 32 34 35 36 36 37 34 39 41 39 35 37 42 41 42 48 48 50 50 52 52 54 54 56 57 58 58 56 59 59 63 63 65 66 65 57 66 70 70 72 73 73 75 72 75 78 78 80 80 81 83 83 84 81 29 24 84 90 9...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 2412828 1922117 1327147 965330 1085799 1564240 1690944 1688948 2415056 1441542
result:
ok
Test #3:
score: 10
Accepted
time: 49ms
memory: 24796kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 0 0 3 4 5 4 4 5 5 10 10 10 13 13 15 15 15 18 3 5 5 18 23 24 24 25 27 27 27 27 31 32 33 32 33 33 33 38 38 38 41 41 38 32 38 38 41 48 48 50 50 50 53 53 55 55 55 48 55 60 60 55 61 64 64 64 64 53 64 55 64 72 72 72 50 48 72 78 78 80 81 81 81 81 83 86 86 86 86 88 ...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 57510536913265758 13893873797083323 19946610899128 612378945455168 5805050629165603 24375661619556703 36105231950324439 45342443221065693 18169686485050308 12956499749658231
result:
ok
Test #4:
score: 10
Accepted
time: 62ms
memory: 23552kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 2 3 4 5 6 7 8 9 9 10 12 13 14 14 13 17 15 19 20 21 21 22 22 25 26 27 27 29 30 30 32 32 34 35 36 37 36 38 40 41 42 43 44 38 36 40 48 49 49 51 52 53 53 52 56 57 55 57 59 61 62 63 64 65 66 63 68 69 69 71 67 73 73 74 76 77 76 76 80 80 82 83 80 75 86 77 88 89 9...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 7643905133299046 28184208216232992 397398112600514 439994136720137 32751552084610538 34770551047442984 2746924426773012 1660650876324804 36635310270169815 52687563609961576
result:
ok
Test #5:
score: 10
Accepted
time: 64ms
memory: 23576kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 2 3 4 5 6 7 8 9 8 11 12 13 13 12 14 15 18 19 20 21 22 23 24 23 26 27 28 29 30 30 32 31 34 35 36 35 37 37 40 41 42 43 43 45 43 47 48 47 50 51 50 48 54 55 55 57 58 59 59 61 62 61 60 62 52 67 68 69 70 70 72 73 74 71 74 75 78 78 78 78 58 83 46 61 86 73 88 89 8...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 26872827042939935 49372923666359196 9058883871784635 6777056622183544 1838319902044609 32141218683607317 3983594684931644 57790759896735111 27089846953780734 10261160977025592
result:
ok
Test #6:
score: 10
Accepted
time: 43ms
memory: 23880kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 2 3 4 5 6 7 8 8 10 11 11 13 14 15 16 17 18 18 20 21 22 22 24 17 23 21 22 29 29 31 32 33 34 31 33 35 38 38 40 41 42 39 44 45 46 46 48 49 38 51 43 53 53 50 56 45 58 58 60 59 60 63 63 64 66 66 68 65 67 71 66 66 72 75 75 77 78 77 80 76 79 83 83 80 86 87 88 89 ...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 46240945687 75809785349 1427956109 18769152814 10917853217 38913156840 15656876405 40210377091 62339284486 12811886908
result:
ok
Test #7:
score: 10
Accepted
time: 72ms
memory: 23648kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 2 3 3 4 6 7 8 9 10 10 12 13 14 11 16 17 18 19 20 21 21 23 24 25 25 27 24 28 30 31 32 28 34 35 36 37 22 29 23 17 31 43 43 45 46 43 48 49 47 51 51 53 46 49 56 57 58 58 60 61 62 57 64 63 66 65 45 69 70 71 72 68 23 75 76 77 73 79 80 81 82 83 84 84 85 87 88 89 ...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 40918849029853209 7833596601568197 5990593014536811 4352190437322498 17295263219976717 47008068426232620 954287740499985 15897745496652069 22735636717009101 8720508161191782
result:
ok
Test #8:
score: 10
Accepted
time: 66ms
memory: 23424kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 2 3 4 4 6 7 8 8 9 11 12 7 14 15 15 17 16 17 17 21 22 23 17 20 14 25 28 26 30 30 32 33 31 35 36 33 38 35 40 41 41 30 38 45 31 33 48 49 50 51 33 50 53 55 56 56 58 59 60 59 62 63 64 56 66 66 68 62 60 55 62 59 74 74 76 77 77 32 80 81 82 44 58 85 85 85 88 89 89...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 18332177014668621 48287181796568495 21123963074015684 53693699485878843 2086270347806154 51638060827009153 25332123081029950 1389829310508093 14190661594976877 70996135211589918
result:
ok
Test #9:
score: 10
Accepted
time: 56ms
memory: 22976kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 2 3 4 5 5 4 8 9 10 11 8 9 14 15 16 17 18 17 20 21 10 23 23 25 26 26 28 28 19 31 32 33 31 35 36 33 18 39 40 41 42 40 29 45 46 47 46 49 49 47 45 53 53 54 32 57 57 30 60 61 62 61 64 60 27 67 68 68 70 69 72 71 71 7 11 77 78 79 79 81 78 83 84 85 86 87 87 86 90 ...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 27482511519482973 54801483810360485 16427935358969097 18858137547390619 77884374862242783 26106356577065893 6900572582069509 10154611289838451 29452407535664386 51588785737271760
result:
ok
Test #10:
score: 10
Accepted
time: 39ms
memory: 20704kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 76294866873700498 93890907422242820 93434331911152132 74666580729163472 52192075803472304 95086795576987856 59809293897104834 53869016712136914 77675882910684380 89712991728300302
result:
ok
Subtask #2:
score: 0
Wrong Answer
Test #11:
score: 0
Wrong Answer
time: 0ms
memory: 16472kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 2000 0 0 1 1 4 4 6 7 6 7 10 10 12 12 14 15 14 15 18 19 19 21 18 21 24 24 26 27 26 27 30 30 32 32 34 34 36 37 38 39 39 41 37 38 36 41 46 47 48 47 48 51 51 53 54 54 56 56 58 58 60 61 61 63 64 64 66 67 66 67 70 71 72 72 74 75 76 76 75 74 70 77 63 60 77 85 85 87 87 89 89...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 255347270950 917598099102 1186278878300 56978873664 1504527487864 876776160918 236084642782 46376132776 184172033316 385982527858
result:
wrong answer 3rd lines differ - on the 1st token, expected: '175909322571', found: '255347270950'
Subtask #3:
score: 0
Skipped
Dependency #2:
0%
Subtask #4:
score: 7
Accepted
Test #33:
score: 7
Accepted
time: 52ms
memory: 30240kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 0 1 2 2 6 6 7 7 10 11 11 13 14 13 14 17 10 17 20 21 22 22 23 21 20 23 28 29 28 29 32 33 34 32 33 34 38 39 39 40 42 42 44 45 46 47 48 45 46 48 52 53 53 54 56 56 58 58 60 61 62 63 63 65 61 66 62 66 70 71 71 72 72 75 60 65 75 79 52 44 70 47 40 54 79 87 87 89 ...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 18330254280 114566555886 5123993634 1571790384 1390661403 102887513647 12142338294 532135751 48879256279 74804356884 7047438873 58553215238 26812191362 41269971650 32111371952 8116162880 57784940023 106724111433 93322831828 42829869427 28126687591 28123313538 1525...
result:
ok
Test #34:
score: 7
Accepted
time: 52ms
memory: 24396kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 21 20 23 25 25 27 28 29 29 30 32 33 33 22 36 33 34 39 39 40 42 43 44 45 39 47 48 49 50 51 52 52 54 51 56 57 58 59 60 60 61 62 59 61 66 67 68 63 70 71 68 58 61 75 76 77 66 73 80 60 60 83 83 58 86 87 86 89 ...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 50233536385 3587514281 5880195973 137570322832 29902093191 26550751346 32639328031 66964630751 25701201292 103130504357 54417568193 90440614687 29659144821 30382916893 3188471716 14164945825 46749986071 1254071200 57249463618 32639228784 26502847608 103554150130 1...
result:
ok
Test #35:
score: 7
Accepted
time: 63ms
memory: 24648kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 13 16 17 18 19 20 20 22 22 22 24 25 22 28 29 29 29 32 32 32 35 35 37 38 39 38 21 17 41 44 45 30 47 48 48 49 51 52 52 54 55 55 55 50 59 55 54 62 63 64 62 62 64 67 62 59 51 72 73 74 75 76 75 56 79 80 81 80 82 82 85 82 87 88 55 ...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 44679405666 7344895774 71198961182 21219279009 50500461174 7095602694 60932721243 137763754969 17105320274 37016931183 21667892444 8839528376 77671688743 31024367232 89840380380 4873771465 14736820809 142327968181 115923386349 32203682223 9608934637 87739160313 21...
result:
ok
Test #36:
score: 7
Accepted
time: 50ms
memory: 24440kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 12 10 16 18 19 20 21 22 23 24 25 25 23 28 29 29 31 32 31 32 35 36 37 37 38 40 41 41 35 44 22 46 21 48 49 50 51 23 48 50 32 56 57 58 58 60 61 32 63 9 65 46 62 68 12 42 71 72 73 40 75 63 77 14 79 79 81 82 82 82 82 30 76 88 89 9...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 5521438976 15261272599 10728067067 3645164128 23856372857 446697418 929867368 12088150858 30035383256 7293473665 4359793115 40865552617 55353413089 7616895721 34148444820 2529872987 53772209472 39426040232 3895610150 712023248 5474833320 2807877401 21416591895 366...
result:
ok
Test #37:
score: 7
Accepted
time: 62ms
memory: 24280kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 1 2 4 5 6 7 8 9 8 7 11 13 14 14 16 17 17 18 20 14 19 23 24 24 26 27 26 29 30 31 29 25 34 34 35 37 32 39 40 41 42 43 42 43 45 46 48 48 49 51 51 51 43 55 55 57 58 58 44 55 39 60 64 64 44 67 68 69 68 71 72 19 74 27 9 77 78 79 80 80 82 83 84 85 86 85 86 89 90 ...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 38153302526 130097547239 52388680982 69184293541 80459218361 14724080527 866710368 18319226622 80908501410 23324019935 32743579203 16938672359 5934264863 52906244180 23716977699 45587337949 14483777583 2954757299 19498267405 24049176238 9117766559 5805218194 21070...
result:
ok
Test #38:
score: 7
Accepted
time: 52ms
memory: 26668kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 2 3 4 5 6 0 8 8 10 11 12 9 14 15 16 17 18 19 20 21 7 23 24 25 26 27 28 29 30 31 32 33 34 35 22 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 307705295 740817932 103016 93590629 636968552 4207234 494349851 813091070 510525363 215228314 109359791 1042526314 759568979 271550316 293772874 1144161018 4572297 637369864 459711939 148096492 103770009 853464064 22376976 676525710 84286852 399680890 775723872 12...
result:
ok
Test #39:
score: 7
Accepted
time: 53ms
memory: 23596kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 2 3 4 2 4 7 8 8 10 10 12 13 14 15 16 17 15 16 20 21 22 21 24 18 26 13 28 19 30 14 32 33 34 35 35 37 33 39 40 41 41 26 32 45 46 47 30 49 50 31 52 52 18 55 55 36 48 48 19 49 62 62 31 65 11 67 68 68 9 71 72 73 74 75 76 77 78 78 76 81 82 82 71 36 39 87 88 87 9...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 17606249861 36754536423 31398535922 126896299427 75536620971 124572494315 61770969257 36419022307 25719602834 21613762047 19587768771 90018339815 32518184788 37664052696 132681842175 33458876552 10232954134 55087303729 27438862203 44821277009 63256973538 470954133...
result:
ok
Test #40:
score: 7
Accepted
time: 37ms
memory: 21584kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 96203127179 56234228902 33659229298 20054091922 292186192729 55908093901 136507199146 37505723434 132422932602 44038197362 134790779646 279535770445 79001683916 226259989838 4703942916 48668597404 166838756150 7495535255 287482795199 38180299940 258644451531 31204...
result:
ok
Subtask #5:
score: 0
Wrong Answer
Dependency #4:
100%
Accepted
Test #41:
score: 0
Wrong Answer
time: 55ms
memory: 25372kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 1 1 1 5 5 5 8 8 10 1 10 13 13 13 16 16 18 19 20 21 21 22 24 21 22 21 21 22 20 19 18 21 19 24 36 36 38 38 40 41 40 41 44 45 45 45 44 45 50 50 50 51 54 55 55 54 44 50 55 61 62 16 38 19 45 40 54 18 8 54 62 73 73 75 76 76 76 79 80 80 75 80 75 80 80 87 87 87 90...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 37162199189 27495183579 105112503432 68339926625 5057167480 17379191847 15934552736 162448093 15036911716 70691388307 26994455747 110081653197 72020256960 22306843242 36297489277 2520681770 -502176105 13704212205 4786063590 1078747909 18576511798 13166035805 72762...
result:
wrong answer 3rd lines differ - on the 1st token, expected: '37308016868', found: '37162199189'
Subtask #6:
score: 0
Wrong Answer
Test #47:
score: 0
Wrong Answer
time: 48ms
memory: 29320kb
input:
ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0 200000 0 1 0 1 4 5 5 7 7 9 9 11 12 13 13 11 14 12 14 19 20 19 20 23 24 25 26 26 28 28 30 31 32 33 33 35 35 30 32 31 37 41 42 43 24 44 46 46 48 49 50 51 51 53 54 55 55 56 56 48 50 54 44 59 49 25 59 67 68 67 68 71 71 72 72 75 76 76 78 79 80 37 80 83 83 85 86 85 79 41 8...
output:
11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1 OK 64181073372 64119284187 64631394552 64620196512 64108486077 64271657517 64412832807 64353243237 64505816532 64068893007 64172074947 64221466302 64069892832 64609398402 64333446702 64509815832 64140880407 64618196862 64438428327 64853155737 64428830007 64407033822 ...
result:
wrong answer 3rd lines differ - on the 1st token, expected: '44399242169', found: '64181073372'
Subtask #7:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
0%