QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#500498 | #2562. Fake Plastic Trees 2 | chenxinyang2006 | WA | 12ms | 13564kb | C++20 | 2.6kb | 2024-08-01 13:08:38 | 2024-08-01 13:08:38 |
Judging History
answer
#include <bits/stdc++.h>
#define rep(i,j,k) for(int i=(j);i<=(k);i++)
#define per(i,j,k) for(int i=(j);i>=(k);i--)
#define uint unsigned int
#define ll long long
#define ull unsigned long long
#define db double
#define ldb long double
#define pii pair<int,int>
#define pll pair<ll,ll>
#define mkp make_pair
#define eb emplace_back
#define SZ(S) (int)S.size()
//#define mod 998244353
//#define mod 1000000007
#define inf 0x3f3f3f3f
#define linf 0x3f3f3f3f3f3f3f3f
using namespace std;
template <class T>
void chkmax(T &x,T y){
if(x < y) x = y;
}
template <class T>
void chkmin(T &x,T y){
if(x > y) x = y;
}
inline int popcnt(int x){
return __builtin_popcount(x);
}
inline int ctz(int x){
return __builtin_ctz(x);
}
/*ll power(ll p,int k = mod - 2){
ll ans = 1;
while(k){
if(k % 2 == 1) ans = ans * p % mod;
p = p * p % mod;
k /= 2;
}
return ans;
}*/
int T,n,k;
ll L,R;
ll AA[1005];
vector <int> G[1005];
int siz[1005];
vector <ll> dp[1005][55],tmp[55];
void psh(vector <ll> &cur,ll val){
while(SZ(cur) >= 2 && val - cur[SZ(cur) - 2] <= R - L) cur.pop_back();
cur.eb(val);
}
void comb(vector <ll> &res,vector <ll> &A,vector <ll> &B){
vector <ll> temp;
for(ll a:A){
int i = 0;
for(ll b:B){
while(i < SZ(res) && res[i] < a + b) psh(temp,res[i++]);
psh(temp,a + b);
}
while(i < SZ(res)) psh(temp,res[i++]);
swap(res,temp);
temp.clear();
}
}
void prt(vector <ll> &A){
for(ll a:A) printf("%lld ",a);
printf("\n");
}
void dfs(int u,int f){
rep(i,0,k) dp[u][i].clear();
dp[u][0].eb(AA[u]);
siz[u] = 0;
for(int v:G[u]){
if(v == f) continue;
dfs(v,u);
rep(i,0,min(siz[u] + siz[v],k)) tmp[i].clear();
rep(i,0,min(siz[u],k)){
rep(j,0,min(siz[v],k - i)) comb(tmp[i + j],dp[u][i],dp[v][j]);
}
siz[u] += siz[v];
rep(i,0,min(siz[u],k)) dp[u][i] = tmp[i];
}
rep(i,0,k - 1){
int valid = 0;
for(ll &val:dp[u][i]) if(L <= val && val <= R) valid = 1;
if(valid){
dp[u][i + 1].eb(0);
per(_k,SZ(dp[u][i + 1]) - 1,1) swap(dp[u][i + 1][_k],dp[u][i + 1][_k - 1]);
}
}
siz[u]++;
/* printf("node %d\n",u);
rep(i,0,k){
printf("i=%d ",i);
prt(dp[u][i]);
}*/
}
void solve(){
scanf("%d%d%lld%lld",&n,&k,&L,&R);
rep(u,1,n){
scanf("%lld",&AA[u]);
G[u].clear();
}
rep(i,1,n - 1){
int u,v;
scanf("%d%d",&u,&v);
G[u].eb(v);G[v].eb(u);
}
dfs(1,0);
rep(i,0,k){
int valid = 0;
for(ll &val:dp[1][i]) if(L <= val && val <= R) valid = 1;
printf("%d",valid);
}
printf("\n");
}
int main(){
// freopen("test.in","r",stdin);
scanf("%d",&T);
while(T--) solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3752kb
input:
3 4 3 1 2 1 1 1 1 1 2 2 3 3 4 4 3 1 2 1 1 1 1 1 2 1 3 1 4 4 3 0 0 1 1 1 1 1 2 1 3 1 4
output:
0111 0011 0000
result:
ok 3 tokens
Test #2:
score: 0
Accepted
time: 1ms
memory: 3800kb
input:
100 10 9 18 50 18 0 9 8 11 11 13 16 9 2 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 38 50 4 10 11 13 19 6 14 14 20 14 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 26 50 6 1 12 7 1 12 20 2 0 12 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 29 50 16 13 1 17 20 15 0 3 6 7 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10...
output:
0011000000 0010000000 0100000000 0010000000 0011111000 0111100000 0010000000 0010000000 0100000000 0011111000 0110000000 0011000000 0011111100 0100000000 0010000000 0010000000 0010000000 0011000000 0111000000 0011100000 0100000000 0100000000 0100000000 0011000000 0011000000 0011111000 0011111110 001...
result:
ok 100 tokens
Test #3:
score: 0
Accepted
time: 1ms
memory: 4092kb
input:
100 10 9 23 50 13 10 9 11 14 13 11 9 14 14 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 11 50 11 9 9 9 14 7 9 12 14 5 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 27 50 14 13 9 13 9 13 9 14 14 5 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 41 50 8 10 10 13 8 6 12 7 10 5 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 1...
output:
0011000000 0011110000 0010000000 0100000000 0011110000 0100000000 0011110000 0011110000 0011100000 0100000000 0011111100 0100000000 0011100000 0011100000 0100000000 0100000000 0011111000 0011000000 0100000000 0011000000 0011111100 0011100000 0100000000 0100000000 0100000000 0011111000 0011111111 010...
result:
ok 100 tokens
Test #4:
score: 0
Accepted
time: 1ms
memory: 3796kb
input:
100 10 9 17 50 9 8 10 12 12 10 12 10 9 10 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 19 50 10 9 8 10 12 12 8 11 12 10 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 46 50 8 8 10 10 10 8 9 10 11 10 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 9 50 9 8 11 10 11 10 10 11 11 10 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 ...
output:
0011100000 0011000000 0100000000 0011111110 0011111000 0011111111 0011111000 0100000000 0011110000 0011100000 0100000000 0011100000 0011100000 0100000000 0011110000 0011110000 0011100000 0100000000 0011100000 0011111111 0100000000 0011100000 0011000000 0100000000 0011111100 0011110000 0100000000 001...
result:
ok 100 tokens
Test #5:
score: 0
Accepted
time: 1ms
memory: 3804kb
input:
100 10 9 10 50 10 11 11 10 9 9 11 9 11 10 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 47 50 9 9 9 11 9 10 10 10 10 9 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 49 50 9 10 9 11 11 9 11 10 10 9 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 19 50 10 9 11 11 10 11 11 9 9 11 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10...
output:
0011111100 0100000000 0100000000 0011100000 0011110000 0011111111 0011110000 0100000000 0010000000 0100000000 0011111000 0011100000 0100000000 0011110000 0011110000 0011111000 0011111111 0011110000 0011111000 0011110000 0011111100 0011100000 0011000000 0011111111 0100000000 0011111111 0100000000 001...
result:
ok 100 tokens
Test #6:
score: 0
Accepted
time: 1ms
memory: 3820kb
input:
100 10 9 50 50 50 50 50 50 50 50 50 50 50 50 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 50 50 50 50 50 50 50 50 50 50 50 50 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 50 50 50 50 50 50 50 50 50 50 50 50 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 50 50 50 50 50 50 50 50 50 50 50 50 1 2 2 3 3 4 4 5 5 6 6...
output:
0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 000...
result:
ok 100 tokens
Test #7:
score: 0
Accepted
time: 1ms
memory: 3828kb
input:
100 10 9 1793281831312430 2579712950976669 883262428445148 926941407766037 874610589009581 918671242302849 917202064660727 848094660280817 810513162735522 862049976415823 844577745576407 873085228984439 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 1890762965379103 2701769025604615 804306683243252 81402...
output:
0001000000 0001000000 0000100000 0000110000 0001111000 0000100000 0001111111 0000111100 0000111110 0000110000 0001111111 0000111000 0001100000 0001000000 0001100000 0001000000 0000111000 0001111100 0001000000 0001111110 0000110000 0000111100 0001000000 0001111111 0001100000 0001000000 0001000000 000...
result:
ok 100 tokens
Test #8:
score: 0
Accepted
time: 1ms
memory: 3824kb
input:
100 10 9 930392660078775 2806634959843587 930392660078775 905044994636391 985788965763349 912985101122684 987674992837788 921047708030944 933871032635272 924074917003015 906465081663363 976094961177209 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 1883664986961563 2834193280785472 958998107162380 924666...
output:
0000110000 0001000000 0000110000 0001110000 0001000000 0000111100 0001000000 0001000000 0001000000 0001000000 0001000000 0001100000 0001000000 0000111000 0001111000 0001000000 0001000000 0001111110 0001111110 0001000000 0001100000 0001110000 0001000000 0001110000 0000110000 0001110000 0001000000 000...
result:
ok 100 tokens
Test #9:
score: 0
Accepted
time: 1ms
memory: 3808kb
input:
100 10 9 999994984493978 2999942395429624 999994984493978 999939388770002 999967949978069 999931885129608 999990661850258 999984525481315 999963292059809 999975054238715 999981969673638 999985371517271 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 999995366940426 2999765738847089 999995366940426 9999556...
output:
0001100000 0000100000 0001000000 0000110000 0001111110 0000110000 0000111100 0001100000 0001111100 0000110000 0001100000 0000111110 0001100000 0001110000 0001111110 0000111000 0001110000 0001100000 0001100000 0000100000 0001110000 0001000000 0001000000 0001111110 0001111110 0000111110 0000100000 000...
result:
ok 100 tokens
Test #10:
score: 0
Accepted
time: 1ms
memory: 4088kb
input:
100 10 9 999999979118283 2999999819537067 999999979118283 999999975440440 999999958461371 999999979080922 999999991176682 999999985652594 999999984182267 999999928654853 999999990678448 999999900203766 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 999999951922360 2999999720940184 999999951922360 9999999...
output:
0000110000 0000111000 0001000000 0000100000 0001100000 0001100000 0001111000 0001110000 0001000000 0001000000 0000111000 0001110000 0001000000 0001111100 0001000000 0000110000 0000100000 0000110000 0001000000 0000110000 0001111111 0001111100 0001111100 0001000000 0001111100 0001110000 0000100000 000...
result:
ok 100 tokens
Test #11:
score: 0
Accepted
time: 1ms
memory: 3800kb
input:
100 10 9 999999999999480 2999999999998668 999999999999480 999999999999623 999999999999311 999999999999062 999999999999032 999999999999420 999999999999039 999999999999706 999999999999079 999999999999883 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 999999999999062 2999999999997761 999999999999062 9999999...
output:
0001110000 0000111110 0000111000 0000111100 0001110000 0000110000 0001100000 0001000000 0000111100 0000100000 0001111000 0001110000 0001111100 0001000000 0000111000 0000110000 0001000000 0001000000 0000110000 0000110000 0001110000 0001111110 0001000000 0001100000 0000111000 0001111100 0001000000 000...
result:
ok 100 tokens
Test #12:
score: 0
Accepted
time: 1ms
memory: 3896kb
input:
100 10 9 809217843509205176 1000000000000000000 819047520089857618 993247146028854493 979024090970900146 946916558454439857 809217843509205176 908857838415646655 809854521131167579 931917514552091282 890253286257158425 872828244740194237 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 810517126615250421 1...
output:
0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 000...
result:
ok 100 tokens
Test #13:
score: 0
Accepted
time: 1ms
memory: 3804kb
input:
100 10 9 990469099227929497 1000000000000000000 997087653799379867 998602320157374700 997500855340614575 998172426490578932 998173419961973183 997315871904813866 990469099227929497 991331794758268536 996329227071528815 994942302495919962 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 990138767121283623 1...
output:
0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 000...
result:
ok 100 tokens
Test #14:
score: 0
Accepted
time: 1ms
memory: 4088kb
input:
100 10 9 1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 9 100000000...
output:
0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 0000000001 000...
result:
ok 100 tokens
Test #15:
score: 0
Accepted
time: 3ms
memory: 9872kb
input:
1 1000 50 3 50 0 0 1 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 0 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 0 1...
output:
000000000011111111111111111111111111111111111111111
result:
ok "000000000011111111111111111111111111111111111111111"
Test #16:
score: 0
Accepted
time: 4ms
memory: 9036kb
input:
1 1000 50 16 50 0 2 1 2 0 0 0 1 0 2 1 0 2 2 1 2 2 2 1 0 0 1 1 0 2 1 2 1 2 1 0 0 1 1 0 2 2 2 2 0 0 2 2 2 1 1 0 1 1 1 1 1 0 2 1 1 2 2 2 0 0 2 0 0 1 1 0 0 2 1 2 1 1 1 2 0 0 2 2 2 1 1 1 0 1 0 1 1 2 2 0 0 2 0 1 2 2 0 0 0 2 2 1 2 1 0 2 1 1 0 1 0 0 1 1 0 0 1 0 0 2 2 2 0 0 1 2 2 1 1 2 2 0 2 2 0 1 0 1 0 1 1 ...
output:
000000000000000000001111111111111111111111111111111
result:
ok "000000000000000000001111111111111111111111111111111"
Test #17:
score: 0
Accepted
time: 12ms
memory: 12416kb
input:
1 1000 50 12 50 3 0 3 3 0 1 1 0 0 1 3 2 2 0 0 1 2 1 0 2 2 1 3 2 0 3 3 1 1 3 2 3 3 2 2 2 1 3 2 3 2 1 0 0 2 3 2 0 1 2 3 3 1 3 1 2 0 3 1 1 3 0 0 0 1 3 2 1 2 0 1 0 1 0 2 2 3 0 1 3 1 3 0 0 1 0 0 1 1 1 0 0 3 1 0 0 0 3 3 3 1 1 1 1 1 2 2 3 1 1 1 1 2 3 2 3 3 0 1 0 0 3 0 2 0 2 1 0 0 3 1 1 2 1 2 1 3 0 3 3 1 0 ...
output:
000000000000000000000000000000111111111111111111111
result:
ok "000000000000000000000000000000111111111111111111111"
Test #18:
score: 0
Accepted
time: 7ms
memory: 8312kb
input:
1 1000 50 42 50 1 1 2 0 2 2 2 3 1 4 1 2 2 2 3 4 3 2 3 0 2 1 4 4 2 1 1 3 3 4 3 2 1 1 0 3 2 1 4 3 4 0 0 3 3 2 1 0 1 0 0 4 1 3 3 1 4 0 0 1 4 1 3 2 4 2 4 4 3 4 0 1 0 1 1 1 0 4 3 3 1 2 4 3 4 3 1 2 1 4 3 0 3 4 1 4 4 0 0 2 1 1 4 3 3 2 4 4 1 1 3 3 1 1 4 3 2 3 0 2 4 4 4 1 0 3 2 1 0 3 4 4 3 4 0 2 2 0 1 1 4 2 ...
output:
000000000000000000000000000000000000000000111111000
result:
ok "000000000000000000000000000000000000000000111111000"
Test #19:
score: 0
Accepted
time: 6ms
memory: 8148kb
input:
1 1000 50 44 50 3 2 3 2 1 2 1 3 3 1 2 2 2 2 3 1 2 3 1 2 3 1 1 1 3 1 3 2 2 1 3 1 2 1 1 2 1 1 3 3 3 2 3 2 3 2 1 1 1 2 1 3 1 2 3 1 2 2 1 2 3 2 2 3 2 2 1 2 1 1 2 2 3 2 2 1 2 3 1 3 3 2 3 3 2 1 1 2 2 1 3 2 2 3 3 3 3 3 3 1 3 2 2 2 1 2 3 1 3 2 1 3 3 1 1 2 1 3 2 2 2 1 2 2 1 1 3 1 2 1 3 3 2 1 2 3 1 2 1 1 3 3 ...
output:
000000000000000000000000000000000000000011111000000
result:
ok "000000000000000000000000000000000000000011111000000"
Test #20:
score: 0
Accepted
time: 0ms
memory: 6868kb
input:
1 1000 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50...
output:
000000000000000000000000000000000000000000000000000
result:
ok "000000000000000000000000000000000000000000000000000"
Test #21:
score: 0
Accepted
time: 7ms
memory: 11716kb
input:
1 1000 50 9067775517233793 27568152627261704 824143955544587 927579399534651 981801757217093 873773052413201 960257095164910 952261320093379 822434086320207 800147963710845 932219523834279 993157363400641 894323153846989 891533209662841 816940466685934 850744085351539 876674222750886 984981230477671...
output:
000000000000000000000000000000000111111111111111111
result:
ok "000000000000000000000000000000000111111111111111111"
Test #22:
score: 0
Accepted
time: 7ms
memory: 11532kb
input:
1 1000 50 10392950962364217 29677624285662191 952249828947457 989340248861758 922815904253124 988185672550932 901211610272775 916246836895084 911821518650392 969679688724958 917576531870585 962895648801013 960927472536139 985041956652122 955734234153218 924834554870256 927427626795671 99743959744383...
output:
000000000000000000000000000000001111111111111111111
result:
ok "000000000000000000000000000000001111111111111111111"
Test #23:
score: 0
Accepted
time: 5ms
memory: 7032kb
input:
1 1000 50 27998332064717309 30998401244356277 999923676529412 999964127454061 999901368076070 999965096214353 999973159921658 999940703209340 999901590913383 999994884859099 999948950882947 999900197152876 999903336019181 999974160658209 999963256360445 999962463135617 999900477973929 99993606716768...
output:
000000000000000000000000000000001110000000000000000
result:
ok "000000000000000000000000000000001110000000000000000"
Test #24:
score: 0
Accepted
time: 8ms
memory: 13564kb
input:
1 1000 50 4999999774482822 30999998337007262 999999966252791 999999947367745 999999905851118 999999999785542 999999955225626 999999997492014 999999907762313 999999913104525 999999962556159 999999998434960 999999943955799 999999938987651 999999919770925 999999918953335 999999940886692 999999936772000...
output:
000000000000000000000000000000000111111111111111111
result:
ok "000000000000000000000000000000000111111111111111111"
Test #25:
score: 0
Accepted
time: 9ms
memory: 9676kb
input:
1 1000 50 15999999999993257 30999999999985579 999999999999979 999999999999771 999999999999854 999999999999281 999999999999698 999999999999830 999999999999712 999999999999139 999999999999804 999999999999673 999999999999099 999999999999059 999999999999374 999999999999943 999999999999373 99999999999966...
output:
000000000000000000000000000000001111111111111111111
result:
ok "000000000000000000000000000000001111111111111111111"
Test #26:
score: -100
Wrong Answer
time: 6ms
memory: 6896kb
input:
1 1000 50 800012418361959872 1000000000000000000 947369818918026096 942007600439311022 918881052204508717 898991866868830953 878449678306763381 921674051503661838 867715520616597795 880692389166218687 831246240027360885 977061124063742870 948796346350621716 937890416222692974 804321876310495686 8665...
output:
000000000000010000000000000000000010000000000000000
result:
wrong answer 1st words differ - expected: '000000000000000000000000000000000000000000000000000', found: '000000000000010000000000000000000010000000000000000'