QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#560000 | #9238. Tree | yyyyxh# | 0 | 71ms | 28760kb | C++23 | 1.3kb | 2024-09-12 11:21:37 | 2024-09-12 11:21:38 |
Judging History
answer
#include "tree.h"
#include <cstdio>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
const int N=200003;
const int INF=0x3f3f3f3f;
int n,L,R;
vi vec[N];
int lc[N],rc[N],d[N];
int val[N],cap[N],tg[N];
inline void chmn(int &p,int v){if(p>v) p=v;}
void proc(int p,int v){
if(!p) return;
chmn(tg[p],v);
chmn(val[p],v);
}
void pushdown(int p){
if(tg[p]!=INF) proc(lc[p],tg[p]),proc(rc[p],tg[p]),tg[p]=INF;
}
int merge(int x,int y){
if(!x||!y) return x|y;
pushdown(x);pushdown(y);
if(val[x]>val[y]) swap(x,y);
rc[x]=merge(rc[x],y);
if(d[rc[x]]>d[lc[x]]) swap(lc[x],rc[x]);
d[x]=d[rc[x]]+1;
return x;
}
vi w;ll res,sm[N];
int dfs(int u){
if(vec[u].empty()){
lc[u]=rc[u]=0;
cap[u]=sm[u]=L;
res+=(ll)L*w[u];
val[u]=w[u];tg[u]=INF;
return u;
}
else{
int rt=0;
sm[u]=0;
for(int v:vec[u]) rt=merge(rt,dfs(v)),sm[u]+=sm[v];
proc(rt,w[u]);
while(sm[u]>R){
pushdown(rt);
if(cap[rt]>sm[u]-R){
res+=(ll)(sm[u]-R)*val[rt];
cap[rt]-=sm[u]-R;
sm[u]=R;
}
else{
res+=(ll)cap[rt]*val[rt];
rt=merge(lc[rt],rc[rt]);
sm[u]-=cap[rt];
}
}
return rt;
}
}
void init(vi P,vi W){
n=P.size();w=W;
for(int i=1;i<n;++i) vec[P[i]].emplace_back(i);
}
ll query(int _L,int _R){
d[0]=-1;L=_L;R=_R;res=0;dfs(0);
return res;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 71ms
memory: 28760kb
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 682649857032 834053158502 104107477894 626343051360 578221938887 1248272024064 1306123798175 417837665268 365715720285 1302018937403
result:
wrong answer 3rd lines differ - on the 1st token, expected: '682654248246', found: '682649857032'
Subtask #2:
score: 0
Wrong Answer
Test #11:
score: 0
Wrong Answer
time: 3ms
memory: 6108kb
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 160321287492 577536865230 742953606718 36204263368 944680447080 556988667200 149989091096 29572185324 117141483186 244380951546
result:
wrong answer 3rd lines differ - on the 1st token, expected: '175909322571', found: '160321287492'
Subtask #3:
score: 0
Skipped
Dependency #2:
0%
Subtask #4:
score: 0
Time Limit Exceeded
Test #33:
score: 0
Time Limit Exceeded
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:
result:
Subtask #5:
score: 0
Skipped
Dependency #4:
0%
Subtask #6:
score: 0
Time Limit Exceeded
Test #47:
score: 0
Time Limit Exceeded
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:
result:
Subtask #7:
score: 0
Skipped
Dependency #1:
0%