QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#454930 | #7769. Axium Crisis | NKheyuxiang | 40 | 2229ms | 16856kb | C++14 | 2.2kb | 2024-06-25 16:49:49 | 2024-06-25 16:49:50 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
int n,cnt;
int E[19][19],id[19][19];
mt19937 rd(time(0));
struct node{
int eset,num,st,ed;
int road[19],len;
void init(int x){
len=eset=num=0;
road[0]=st=ed=x;
}
}path[3005];
bool cmp(node p1,node p2){
if(p1.num!=p2.num) return p1.num<p2.num;
if(p1.len!=p2.len) return p1.len<p2.len;
return p1.eset<p2.eset;
}
void dfs(int u,int fa,node pp,int lim){
if(u!=pp.st) path[++cnt]=pp;
for(int v=1;v<=n;v++){
if(id[u][v]==0||v==fa) continue;
node go=pp;
go.road[++go.len]=v;
go.ed=v;
go.eset+=(1<<(id[u][v]-1));
if(lim==0){
int c=E[u][v];
if(c==2) c=rd()%2;
go.num+=c*(1<<(n-go.len));
dfs(v,u,go,0);
}
else{
if(E[u][v]!=1) dfs(v,u,go,lim-1);
go.num+=(1<<(n-go.len));
if(E[u][v]!=0) dfs(v,u,go,lim-1);
}
}
}
int f[1<<18|1][19],lcp[3005],up[1<<18|1];
void solve(){
scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++) E[i][j]=id[i][j]=0;
for(int i=1;i<n;i++){
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
u++,v++;
E[u][v]=E[v][u]=w;
id[u][v]=id[v][u]=i;
}
cnt=0;
for(int i=1;i<=n;i++){
node pp;
pp.init(i);
dfs(i,0,pp,2);
}
sort(path+1,path+cnt+1,cmp);
for(int i=2;i<=cnt;i++){
lcp[i]=0;
for(int j=1;j<=min(path[i-1].len,path[i].len);j++){
if(path[i-1].num/(1<<(n-j))!=path[i].num/(1<<(n-j))) break;
lcp[i]=j;
}
}
lcp[1]=n;
int lim=(1<<(n-1));
for(int i=0;i<lim;i++){
for(int j=0;j<n;j++) f[i][j]=-1e9;
up[i]=-1;
}
for(int i=1;i<=cnt;i++){
if(path[i].num==path[i-1].num&&path[i].eset==path[i-1].eset) continue;
int s=path[i].eset,len=path[i].len;
for(int j=lim;j>0;j--){
while(up[j]>lcp[i]){
f[j][lcp[i]]=max(f[j][lcp[i]],f[j][up[j]]);
f[j][up[j]]=-1e9;
up[j]--;
}
if((j&s)==0){
for(int k=0;k<=lcp[i];k++)
f[j+s][lcp[i+1]]=max(f[j+s][lcp[i+1]],f[j][k]+len-k);
up[j+s]=max(up[j+s],lcp[i+1]);
}
}
f[s][lcp[i+1]]=max(f[s][lcp[i+1]],len);
up[s]=max(up[s],lcp[i+1]);
}
int ans=0;
for(int j=1;j<lim;j++)
for(int k=0;k<n;k++)
ans=max(ans,f[j][k]);
printf("%d\n",ans+1);
}
int main(){
int t,o;
scanf("%d%d",&t,&o);
printf("0\n");
while(t--) solve();
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 8
Acceptable Answer
Test #1:
score: 8
Acceptable Answer
time: 3ms
memory: 3944kb
input:
1000 0 4 0 2 0 2 3 0 2 1 0 4 3 2 1 0 2 1 1 2 2 4 0 2 2 0 1 0 3 0 0 4 1 2 1 3 2 0 2 0 1 4 0 2 0 0 3 0 2 1 0 4 0 2 1 0 3 1 0 1 1 4 3 1 0 2 1 2 3 0 2 4 3 1 1 3 0 1 2 3 0 4 1 0 0 2 0 2 2 3 2 4 1 2 0 3 0 0 2 3 2 3 2 1 0 0 2 1 4 3 0 1 1 2 1 2 3 0 4 2 1 0 3 0 1 1 0 1 4 3 2 1 3 1 1 0 1 1 4 1 2 1 1 3 0 3 0 1...
output:
0 3 4 4 4 4 3 4 4 4 4 3 4 4 4 4 4 4 4 3 4 4 3 4 4 4 3 4 4 4 4 3 4 4 3 4 4 4 4 4 4 4 3 4 4 3 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 4 3 4 4 3 4 4 2 4 4 3 3 4 3 3 4 4 3 4 3 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 3 4 3 4 4 3 4 3 4 4 4 4 3 4 4 4 4 3 4 4 4 3 4 4 4 4 4 4 4 4 3 4 4 4 3 4 4 4 4 4 3 4 4 ...
result:
points 0.80 Partially Accepted. You Got 80% score.
Test #2:
score: 8
Acceptable Answer
time: 3ms
memory: 5972kb
input:
1000 0 4 2 0 0 2 1 0 0 3 0 4 2 1 0 2 0 0 1 3 0 4 1 3 0 1 0 0 2 1 0 4 0 1 2 2 1 2 1 3 2 4 0 2 2 3 2 0 1 3 1 4 1 3 0 2 3 0 3 0 0 4 1 2 1 3 0 0 0 2 0 4 3 2 1 2 1 1 0 1 0 4 2 1 0 3 2 0 2 0 0 4 1 3 0 2 3 0 3 0 2 4 2 0 0 3 0 1 1 2 1 4 0 2 2 3 1 2 2 1 2 4 1 3 2 3 0 2 2 0 2 4 2 0 0 2 1 2 2 3 1 4 0 1 2 2 3 1...
output:
0 4 4 3 4 4 3 4 4 3 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 3 4 3 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 3 4 4 4 4 4 3 4 4 4 4 4 4 3 4 3 3 4 3 4 3 4 4 4 4 3 4 4 4 4 3 4 3 4 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 4 4 3 4 4 3 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 ...
result:
points 0.80 Partially Accepted. You Got 80% score.
Subtask #2:
score: 8
Acceptable Answer
Test #3:
score: 8
Acceptable Answer
time: 8ms
memory: 5912kb
input:
3000 3 4 0 1 1 0 3 1 0 2 0 4 3 2 0 0 1 1 1 2 0 4 1 0 0 2 3 1 3 1 0 4 2 1 0 2 0 1 3 0 0 4 2 3 1 3 0 1 2 1 0 4 2 3 1 2 1 1 2 0 1 4 0 2 0 1 0 0 3 0 0 4 3 1 1 0 2 0 2 3 0 6 4 0 0 3 1 1 2 3 0 0 5 1 1 5 0 4 2 3 1 3 0 0 3 1 1 4 0 3 0 1 2 0 0 2 1 4 0 2 1 3 1 0 2 1 1 4 2 0 0 2 3 1 1 3 0 6 3 1 0 3 4 1 4 0 1 2...
output:
0 4 4 4 4 4 3 3 4 6 4 4 4 4 5 4 4 3 3 4 5 3 3 4 4 5 4 3 4 4 4 3 3 5 4 4 4 4 3 3 4 4 4 5 4 4 4 4 3 4 6 4 4 6 4 4 4 4 4 3 5 4 4 4 3 4 6 4 3 3 4 4 4 4 6 4 3 4 3 4 3 3 4 4 6 4 4 6 3 6 4 4 5 4 4 4 3 3 4 6 4 4 4 6 4 4 3 4 3 4 3 6 3 4 6 4 3 4 6 3 6 4 6 4 4 4 3 7 4 4 4 3 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 ...
result:
points 0.80 Partially Accepted. You Got 80% score.
Test #4:
score: 8
Acceptable Answer
time: 4ms
memory: 8028kb
input:
3000 3 3 0 1 0 1 2 0 4 2 1 1 0 2 0 0 3 1 6 3 4 1 1 4 0 1 5 1 2 1 1 3 0 0 4 0 2 1 1 2 0 1 3 1 4 0 3 1 2 0 1 1 2 0 6 1 2 0 0 3 0 2 5 0 0 2 1 4 2 0 4 2 0 0 2 1 1 3 1 1 4 1 0 1 1 2 0 3 0 1 4 1 3 0 2 1 1 0 2 0 4 1 3 0 2 1 0 1 0 0 4 3 1 0 2 3 0 0 1 1 4 1 0 0 2 0 0 3 0 0 4 2 1 1 1 0 1 2 3 0 4 3 0 1 1 0 0 2...
output:
0 3 4 6 4 4 5 4 4 4 3 4 3 4 4 6 4 4 4 4 4 6 4 6 3 4 3 3 4 3 4 3 3 4 3 4 4 4 4 6 4 6 4 4 4 4 3 4 4 4 4 6 6 3 3 3 4 4 4 4 4 4 5 4 4 4 4 3 3 4 4 4 4 4 4 4 4 3 5 4 4 4 3 4 4 4 4 4 4 4 3 4 4 6 4 4 4 4 4 4 6 4 4 4 4 6 3 6 3 5 4 3 4 5 6 4 4 4 4 4 3 4 3 4 3 4 6 4 3 4 4 4 4 4 4 4 4 4 4 4 6 4 4 4 4 4 4 3 4 4 ...
result:
points 0.80 Partially Accepted. You Got 80% score.
Subtask #3:
score: 8
Acceptable Answer
Dependency #1:
80%
Acceptable Answer
Dependency #2:
80%
Acceptable Answer
Test #5:
score: 8
Acceptable Answer
time: 20ms
memory: 4080kb
input:
3000 4 4 2 0 0 1 2 0 1 3 0 4 1 2 2 0 2 2 3 2 2 4 3 1 2 3 2 0 0 2 0 4 0 3 2 2 1 2 0 1 2 4 0 1 0 3 0 0 0 2 2 4 2 0 0 2 1 0 3 0 0 6 0 3 2 5 0 2 5 2 2 1 4 2 4 3 2 4 0 3 0 3 1 0 0 2 0 4 1 0 2 2 0 2 3 2 2 4 2 1 2 1 0 2 0 3 2 6 5 0 2 0 2 2 0 4 2 1 0 2 0 3 2 6 4 5 2 0 1 2 0 3 2 4 3 2 5 2 2 4 1 3 0 3 2 0 1 0...
output:
0 4 4 4 4 4 4 6 4 4 4 5 6 4 6 4 4 4 4 4 4 4 3 4 6 5 6 4 4 4 6 6 4 4 4 4 4 3 3 5 6 4 6 4 4 4 4 4 3 4 3 4 6 6 3 5 4 4 5 5 6 4 8 4 3 5 4 6 4 3 3 4 4 4 4 5 4 4 4 6 4 6 4 6 3 4 3 3 3 6 4 4 6 6 4 4 4 8 4 6 4 5 4 4 6 3 4 3 4 5 3 5 8 4 6 6 6 3 3 3 6 4 4 4 4 4 6 3 4 6 4 3 3 6 4 4 6 3 4 6 4 4 5 4 5 4 4 6 3 4 ...
result:
points 0.80 Partially Accepted. You Got 80% score.
Test #6:
score: 8
Acceptable Answer
time: 17ms
memory: 5940kb
input:
3000 0 6 1 3 2 0 4 0 1 4 2 3 5 1 0 2 0 6 0 5 0 0 4 1 0 2 0 3 0 0 1 0 0 6 4 1 2 2 1 1 5 0 2 5 3 1 2 3 0 4 2 0 0 1 0 2 1 3 0 4 2 3 1 0 1 1 2 1 0 4 0 3 1 1 0 2 2 3 0 4 1 3 1 2 3 0 0 1 2 6 1 0 1 4 1 1 5 1 1 3 1 1 2 1 2 4 0 3 1 1 3 2 1 2 1 4 1 2 1 0 2 0 3 1 1 6 0 2 1 1 2 1 0 5 0 2 4 1 2 3 1 6 3 2 1 0 2 0...
output:
0 6 5 6 4 4 4 4 5 4 4 6 6 4 4 6 3 3 3 5 5 4 4 4 4 4 5 3 6 4 4 4 3 6 6 4 4 4 4 4 6 4 3 4 6 5 4 5 3 4 4 4 4 4 6 8 3 4 6 6 4 4 3 4 4 4 4 5 4 3 3 5 6 4 4 4 6 6 4 4 4 6 3 4 4 4 4 4 4 5 6 6 4 4 4 3 6 4 6 5 4 4 3 4 4 3 4 3 4 3 4 4 3 4 6 4 4 4 4 6 4 4 6 4 6 3 4 4 5 3 6 6 4 4 4 4 4 4 11 4 4 6 4 5 4 5 6 6 4 3...
result:
points 0.80 Partially Accepted. You Got 80% score.
Subtask #4:
score: 0
Wrong Answer
Dependency #2:
80%
Acceptable Answer
Test #7:
score: 0
Wrong Answer
time: 53ms
memory: 5092kb
input:
3000 3 8 1 2 1 3 7 0 7 0 1 7 4 0 6 5 0 6 4 1 2 0 0 5 3 1 0 3 2 1 0 1 0 4 0 1 5 3 2 0 4 0 0 4 1 0 2 0 1 6 5 4 1 4 1 1 4 2 1 0 4 1 4 3 1 5 4 1 0 4 3 0 2 1 1 3 0 1 8 3 6 0 1 4 1 2 3 1 0 6 1 0 7 1 2 1 0 7 5 0 8 4 5 0 5 7 0 3 0 0 2 4 1 1 2 0 5 6 0 6 3 1 5 4 1 0 4 0 0 4 3 0 2 4 1 5 1 0 0 1 2 0 2 3 1 0 4 1...
output:
0 8 5 5 3 5 8 7 5 5 6 6 5 8 6 6 7 5 6 6 6 6 6 6 5 5 6 5 8 8 6 5 6 6 8 4 6 8 7 7 6 8 5 6 5 5 3 8 8 5 7 6 8 6 7 6 6 8 8 5 5 8 6 6 5 7 6 5 6 6 5 6 7 6 6 7 5 6 8 7 6 7 6 6 7 6 6 5 8 6 6 6 6 5 5 5 5 7 5 8 6 5 5 6 8 6 6 8 7 6 6 8 5 6 8 7 7 14 8 5 6 5 6 7 5 8 6 5 6 6 7 6 3 5 7 8 8 6 9 8 6 6 8 14 5 4 6 5 6 ...
result:
wrong answer Wrong Answer.
Subtask #5:
score: 0
Skipped
Dependency #3:
80%
Acceptable Answer
Dependency #4:
0%
Subtask #6:
score: 0
Skipped
Dependency #4:
0%
Subtask #7:
score: 4
Acceptable Answer
Test #13:
score: 4
Acceptable Answer
time: 472ms
memory: 15352kb
input:
3000 1 11 2 5 0 10 2 0 6 2 0 2 8 0 0 2 0 2 1 0 2 4 0 2 9 0 2 3 0 7 2 0 11 7 8 0 6 4 0 1 6 0 2 8 0 8 0 0 6 3 0 9 5 0 5 8 0 1 2 0 9 10 0 8 1 4 0 2 3 0 6 5 0 6 7 0 2 4 0 7 3 0 1 0 0 8 4 0 0 0 5 0 7 2 0 0 2 0 0 6 0 0 1 0 0 3 0 11 5 1 0 7 2 0 9 2 0 4 9 0 0 2 0 8 5 0 0 6 0 3 6 0 4 10 0 1 7 0 7 6 2 0 0 5 0...
output:
0 3 8 8 4 8 7 5 7 11 4 8 4 8 10 5 6 7 5 3 11 6 9 6 6 8 8 5 6 4 5 11 4 5 9 6 9 8 8 4 4 8 11 8 6 4 8 7 4 11 7 7 6 7 8 8 8 6 4 8 8 7 7 8 11 8 5 8 4 7 5 7 7 4 6 5 8 5 3 5 8 7 8 5 8 4 5 4 5 4 6 8 5 6 5 5 5 7 5 8 7 6 3 7 7 8 7 5 4 5 5 4 11 6 8 7 6 5 3 6 6 7 8 8 4 6 5 3 3 8 3 7 7 5 7 3 11 3 4 8 6 4 5 4 5 6...
result:
points 0.80 Partially Accepted. You Got 80% score.
Subtask #8:
score: 12
Acceptable Answer
Test #14:
score: 12
Acceptable Answer
time: 2177ms
memory: 16856kb
input:
3000 2 8 4 7 2 4 3 2 3 2 2 4 5 2 1 4 2 6 4 2 0 1 2 8 1 5 2 0 7 2 3 2 2 3 1 2 5 7 2 4 0 2 6 4 2 8 1 3 2 5 3 2 7 6 2 2 6 2 0 7 2 4 6 2 0 5 2 8 5 7 2 2 6 2 1 6 2 4 5 2 4 0 2 0 1 2 7 3 2 11 2 7 2 0 9 2 8 9 2 10 7 2 6 9 2 9 3 2 4 10 2 7 5 2 7 9 2 1 9 2 8 2 6 2 1 5 2 4 1 2 1 3 2 6 1 2 0 1 2 6 7 2 14 2 6 2...
output:
0 7 8 8 8 9 6 7 6 6 10 8 7 6 6 9 6 7 8 11 8 9 8 8 8 6 7 7 11 6 5 7 8 8 7 6 9 7 7 11 8 7 8 6 7 10 6 8 6 7 7 7 7 8 7 9 11 8 7 7 7 11 8 8 7 6 6 7 8 7 8 7 6 7 8 7 11 11 6 7 7 8 8 7 6 8 8 8 9 7 7 8 6 7 7 7 11 6 7 6 8 8 8 8 7 5 6 7 6 7 7 7 8 6 8 8 5 7 8 7 6 7 8 7 6 7 11 10 8 7 8 8 6 6 11 7 7 11 7 10 7 9 7...
result:
points 0.80 Partially Accepted. You Got 80% score.
Test #15:
score: 12
Acceptable Answer
time: 2190ms
memory: 15748kb
input:
3000 2 8 0 5 2 2 6 2 2 3 2 4 3 2 1 5 2 1 6 2 7 4 2 8 2 3 2 1 5 2 6 7 2 1 4 2 6 0 2 2 5 2 3 7 2 7 4 3 2 0 6 2 6 1 2 2 4 2 4 5 2 5 6 2 6 2 0 2 1 2 2 2 4 2 4 3 2 2 5 2 7 6 4 2 1 4 2 5 4 2 3 6 2 0 2 2 4 2 2 8 3 4 2 6 3 2 2 3 2 5 3 2 0 7 2 3 0 2 1 3 2 8 1 5 2 1 2 2 2 4 2 1 6 2 0 1 2 7 1 2 3 2 2 8 7 5 2 7...
output:
0 8 8 6 6 7 7 6 8 11 8 8 8 6 6 8 9 8 8 8 7 5 11 8 6 8 8 11 6 8 7 8 14 10 8 7 8 7 8 7 6 7 8 8 7 6 6 9 4 7 8 7 10 6 7 8 11 8 8 7 8 8 7 7 10 5 6 7 6 7 13 8 6 7 8 8 7 8 6 11 8 7 11 10 10 11 7 7 5 8 8 8 8 7 8 7 6 10 7 6 5 8 7 7 6 7 6 10 7 8 7 8 6 6 7 6 7 8 8 5 8 8 9 8 7 5 6 7 6 8 7 8 10 6 7 8 7 5 7 8 8 8...
result:
points 0.80 Partially Accepted. You Got 80% score.
Test #16:
score: 12
Acceptable Answer
time: 2229ms
memory: 15764kb
input:
3000 2 8 7 2 2 5 2 2 4 2 2 0 2 2 6 2 2 1 2 2 3 2 2 8 6 4 2 4 7 2 0 4 2 3 2 2 3 4 2 5 3 2 5 1 2 8 0 1 2 4 0 2 3 2 2 6 7 2 6 2 2 5 3 2 7 1 2 10 3 1 2 8 3 2 7 3 2 4 3 2 2 3 2 9 3 2 0 3 2 6 3 2 3 5 2 7 2 5 2 3 2 2 5 0 2 2 1 2 6 2 2 4 2 2 8 2 7 2 2 6 2 2 5 2 2 4 2 0 2 2 2 3 2 2 1 2 7 5 2 2 1 5 2 4 2 2 3 ...
output:
0 6 7 8 7 6 6 7 6 8 7 8 7 8 6 8 6 8 7 7 11 8 8 10 8 5 7 7 7 11 8 8 11 8 7 7 8 7 8 7 6 9 8 6 7 8 7 7 8 6 8 6 8 9 8 8 8 7 8 8 11 7 7 8 7 8 7 8 9 7 7 7 7 8 7 7 6 15 7 10 7 8 7 8 11 6 7 8 6 10 6 6 6 7 8 8 8 6 11 11 7 8 7 9 8 6 6 7 8 7 8 11 7 10 10 10 11 6 7 8 7 8 7 13 6 7 7 8 10 8 7 7 8 7 8 9 8 10 8 8 8...
result:
points 0.80 Partially Accepted. You Got 80% score.
Subtask #9:
score: 0
Skipped
Dependency #6:
0%
Subtask #10:
score: 0
Skipped
Dependency #5:
0%