QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#847195 | #9905. 哈夫曼树 | nullptr_qwq | 50 | 291ms | 166240kb | C++14 | 2.4kb | 2025-01-07 18:45:01 | 2025-01-07 18:45:02 |
Judging History
answer
// 私は猫です
#include<bits/stdc++.h>
#define int long long
#define ull unsigned long long
#define ll long long
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
#define inf 1000000000
#define infll 1000000000000000000ll
#define pii pair<int,int>
#define rep(i,a,b,c) for(int i=(a);i<=(b);i+=(c))
#define per(i,a,b,c) for(int i=(a);i>=(b);i-=(c))
#define F(i,a,b) for(int i=a,i##end=b;i<=i##end;i++)
#define dF(i,a,b) for(int i=a,i##end=b;i>=i##end;i--)
#define cmh(sjy) while(sjy--)
#define lowbit(x) (x&(-x))
#define HH printf("\n")
#define eb emplace_back
#define poly vector<int>
#define SZ(x) ((int)x.size())
using namespace std;
template<typename T>inline void chkmax(T &x,const T &y){ x=std::max(x,y); }
template<typename T>inline void chkmin(T &x,const T &y){ x=std::min(x,y); }
const int mod=998244353,NR=500005,V=80;
int minn[NR][90],maxn[NR][90];
int n,q;
int a[NR];
int son[NR][2];
int rt;
int v[NR];
int dep[NR];
int father[NR];
int ans;
int vis[NR];
inline void change(int x){
if(x<=n){minn[x][dep[x]]=maxn[x][dep[x]]=v[x];return;}
int s1,s2;s1=son[x][0],s2=son[x][1];
ans-=vis[x];vis[x]=0;
if(v[s1]>v[s2]) swap(s1,s2);
int fl=0;
F(i,dep[x]+1,V){
int v1=maxn[s1][i],v2=minn[s2][i];
if(v1>v2) fl=1;
maxn[x][i]=max(maxn[s1][i],maxn[s2][i]);
minn[x][i]=min(minn[s1][i],minn[s2][i]);
}
vis[x]=fl;ans+=vis[x];
v[x]=v[s1]+v[s2];maxn[x][dep[x]]=minn[x][dep[x]]=v[x];
}
inline void dfs(int x,int fa){
dep[x]=dep[fa]+1;father[x]=fa;
F(i,0,1) if(son[x][i]) dfs(son[x][i],x);
}
inline void out(){
if(ans) puts("NO");
else {
F(i,1,V-1) if(minn[rt][i]<maxn[rt][i+1]) {puts("NO");return;}
puts("YES");
}
}
void solve(){
cin>>n>>q;
F(i,1,n)cin>>a[i],v[i]=a[i];
F(i,n+1,2*n-1)cin>>son[i][0]>>son[i][1];
rt=2*n-1,dfs(rt,0);
int Max=0;
F(i,1,2*n-1) Max=max(Max,dep[i]);
if(Max>=55){
F(i,1,q) puts("NO");
return;
}
F(i,1,2*n-1) F(j,0,V) maxn[i][j]=0,minn[i][j]=infll;
F(i,1,2*n-1) change(i);
out();
--q;
while(q--){
int x,k; cin>>x>>k;
v[x]=k;
while(1){
change(x);
if(x==rt) break;
x=father[x];
}
out();
}
}
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int zsy=1;
F(____,1,zsy)solve();
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 30
Accepted
time: 0ms
memory: 15852kb
input:
3 4 1 1 1 2 3 1 4 2 2 1 2 3 3
output:
YES NO YES NO
result:
ok 4 token(s): yes count is 2, no count is 2
Test #2:
score: 30
Accepted
time: 2ms
memory: 15916kb
input:
8 5 5 3 4 2 2 6 5 5 1 8 4 5 10 3 11 9 7 2 6 13 14 12 7 3 6 8 4 2 2 5
output:
NO YES YES YES NO
result:
ok 5 token(s): yes count is 3, no count is 2
Test #3:
score: 30
Accepted
time: 0ms
memory: 15860kb
input:
5 1000 193989534544158 57483670601746 183281373434588 92196008024549 197513473286508 1 5 4 2 7 3 8 6 2 65545142774024 4 67957472319495 5 131478473459166 2 102185858570152 3 191441353035940 5 186000528093501 2 63201184033501 2 77481806092413 3 159789430863849 4 92773786021894 1 194598667478593 3 1458...
output:
YES YES YES NO NO NO NO NO NO YES YES YES YES YES YES YES YES NO NO YES YES YES YES YES YES NO NO NO NO YES NO YES YES YES YES YES YES NO NO NO NO YES YES YES NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES YES YES YES YES YES NO NO NO NO NO YES NO NO NO NO NO NO YES ...
result:
ok 1000 token(s): yes count is 375, no count is 625
Test #4:
score: 30
Accepted
time: 2ms
memory: 15928kb
input:
7 1000 88159166205053 95998544558881 48231159865354 231786835189365 84291070100955 225941839972605 33315221625793 2 5 6 4 7 3 1 10 8 11 9 12 6 150843468162951 2 75759088055460 1 86133344610051 4 140694127444493 1 63070113756930 1 90150689680608 6 147790469610032 7 46561924657801 2 103953340734616 6 ...
output:
NO NO NO NO NO NO NO NO YES NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO N...
result:
ok 1000 token(s): yes count is 86, no count is 914
Test #5:
score: 30
Accepted
time: 0ms
memory: 15928kb
input:
7 1000 5 6 7 3 2 5 5 4 7 3 5 1 2 10 6 8 9 12 11 5 2 5 1 5 1 1 2 3 2 5 1 5 2 6 3 4 2 4 1 2 1 5 1 5 1 5 1 7 1 1 2 5 1 5 1 6 3 6 3 5 1 2 2 7 2 7 1 7 1 2 2 1 2 4 2 4 1 1 1 3 1 5 1 2 2 2 2 4 1 2 1 7 2 6 1 2 1 6 2 5 2 1 1 1 1 6 3 7 2 6 3 4 1 1 1 5 1 2 2 7 2 5 1 4 2 5 2 7 2 7 1 4 1 3 2 3 2 1 1 7 2 5 2 1 1 ...
output:
NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO YES YES YES YES NO YES NO YES YES YES YES YES YES NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES YES NO YES NO NO NO NO NO NO NO YES YES YES YES YES YES NO NO NO NO NO NO NO NO NO NO NO NO...
result:
ok 1000 token(s): yes count is 199, no count is 801
Test #6:
score: 30
Accepted
time: 2ms
memory: 15852kb
input:
8 1000 172480280419267 212072146993988 23147786306112 161006134777989 37963466387491 50018942108886 18649770050090 50499101532214 7 3 2 1 5 8 9 6 12 11 4 13 10 14 5 57899673021751 7 22087918088240 1 236990257757485 3 21994370580136 7 26427284121647 8 54391900162086 7 27709763713585 6 59631479929866 ...
output:
NO NO NO YES YES YES YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO YES NO YES NO NO YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES...
result:
ok 1000 token(s): yes count is 119, no count is 881
Test #7:
score: 30
Accepted
time: 0ms
memory: 15848kb
input:
6 1000 20326746134626 98517002313418 165556087937310 116347939244398 130872245741329 136674587230071 2 3 6 7 8 1 9 5 10 4 4 31902652070998 2 20697837065544 3 14389422108471 5 45879772826060 2 23505088168423 6 7588643182717 2 13873224035289 4 3462171437780 6 12963735380517 6 3348685354818 3 141429739...
output:
NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO...
result:
ok 1000 token(s): yes count is 12, no count is 988
Test #8:
score: 0
Wrong Answer
time: 0ms
memory: 13896kb
input:
72 1000 2 10946 610 987 139583862445 20365011074 5 1597 196418 377 267914296 44945570212853 956722026041 5702887 39088169 75025 27777890035288 12586269025 4181 1 53316291173 144 1548008755920 63245986 1 225851433717 6557470319842 832040 2504730781961 102334155 55 3 46368 7778742049 6765 165580141 72...
output:
NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO ...
result:
wrong answer expected YES, found NO [1st token]
Subtask #2:
score: 20
Accepted
Test #16:
score: 20
Accepted
time: 38ms
memory: 48940kb
input:
10000 10000 85117964119 41472951000 61693640396 66409648221 91978532661 62922448518 92497200794 43837348258 45577855926 38256001396 79446271832 95289903258 62510175551 97599809584 56162244722 87617641117 64010325734 56604859803 58544571483 40687963085 38627694508 64665875035 62273927372 73014847094 ...
output:
YES YES YES YES NO NO NO NO NO NO NO NO NO NO YES YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO N...
result:
ok 10000 token(s): yes count is 1207, no count is 8793
Test #17:
score: 20
Accepted
time: 23ms
memory: 46776kb
input:
10000 10000 84900060848 62644704574 98718077349 98821154996 62378873948 84056095227 88175599645 82631986335 89400902292 62154382134 88902573868 60394670260 90463768093 55792148201 54981081426 88759069805 61152773490 92471234756 97882399939 60966664424 77983213922 86899012963 99014573954 61451810141 ...
output:
YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO...
result:
ok 10000 token(s): yes count is 1, no count is 9999
Test #18:
score: 20
Accepted
time: 46ms
memory: 42736kb
input:
10000 10000 93919 1531126631 30535211 270124792 175 384 79432924528 57926141453 28 5497 3726 1802376440 193463181 493828 69230 574 52891249 4467144512 249874064 679 384407292 1656687680 6538 1702 531231 20166752330 15505 82 3284 4814 162 15208812 17569 809 5204 703838 3627957764 44761779 7256061080 ...
output:
YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO N...
result:
ok 10000 token(s): yes count is 463, no count is 9537
Test #19:
score: 20
Accepted
time: 4ms
memory: 14196kb
input:
10000 10000 99806537703 99766194869 99292379197 99207104032 99114739849 98889965040 98714163547 98624741525 98537071301 98408984814 97981236991 97867856128 97728640101 97720014922 97379361440 97285651187 97111208501 97096802253 96643517597 96360376855 95783851225 95377161230 95072710034 94889685140 ...
output:
NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO ...
result:
ok 10000 token(s): yes count is 0, no count is 10000
Subtask #3:
score: 30
Accepted
Test #20:
score: 30
Accepted
time: 201ms
memory: 160460kb
input:
50000 50000 16394396247 17456058492 11358090355 13208121167 8612535629 2853817504 18100755237 18603321637 1618810635 7615832530 13631222424 7817630977 10963098997 19654927084 645638016 9352759139 17939720223 15106346489 14475376391 2122412099 15482023637 11224675857 15931143509 4240408932 1270948838...
output:
YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO YES YES NO NO NO NO NO NO NO NO NO NO NO NO YES YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO YES YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO...
result:
ok 50000 token(s): yes count is 6146, no count is 43854
Test #21:
score: 30
Accepted
time: 191ms
memory: 160420kb
input:
50000 50000 16115874901 16018205653 14928961193 15204162048 13699373395 16820637318 16493035276 12317462119 12335280079 14846384661 17397129601 13936553564 14115670390 10273255127 15120549487 18610914980 11122287472 11331160875 18972429908 12783865866 14407025341 18691310891 11400735942 15689404271 ...
output:
YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO...
result:
ok 50000 token(s): yes count is 97, no count is 49903
Test #22:
score: 30
Accepted
time: 291ms
memory: 166240kb
input:
50000 50000 3993 223081374 1585900689 19301459402 43 928559 17 9528421232 1595336240 17039424626 8356250 531391708 1218 551210298 37104 110710 81842739 119946920 37855516 10200 438 2736 201 23 1438 378221115 23 81 8281519 4554 205450323 52777 10352 45646 15 116342579 4459504 31 19342289293 483194 76...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES ...
result:
ok 50000 token(s): yes count is 448, no count is 49552
Test #23:
score: 30
Accepted
time: 11ms
memory: 17120kb
input:
50000 50000 19988593123 19987997685 19985224140 19980200906 19974260733 19973543573 19966775533 19962491364 19957673556 19951057741 19934887728 19924084943 19912519998 19910951955 19909656706 19908299113 19905363420 19903730114 19900763202 19883792717 19866579628 19863208341 19860493642 19841577977 ...
output:
NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO ...
result:
ok 50000 token(s): yes count is 0, no count is 50000
Subtask #4:
score: 0
Wrong Answer
Test #24:
score: 0
Wrong Answer
time: 0ms
memory: 13940kb
input:
70 100000 66748 126 1 91045172 3605661959574 274077743637349 147314183 8209537 740253 6920630855 25494 1377240316614 15756 6 108000 18118446805 169389361127761 29316262755 48 2643445763 5834083602536 3 9439745562111 29 3719 10 47434709561 11197815949 6018 325122336074 851181326345 1633739329 1527382...
output:
NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO ...
result:
wrong answer expected YES, found NO [1st token]