QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#617025#1955. Double RainbowAnotherDayofSun#WA 2ms11992kbC++141.7kb2024-10-06 13:33:422024-10-06 13:33:43

Judging History

你现在查看的是最新测评结果

  • [2024-10-06 13:33:43]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:11992kb
  • [2024-10-06 13:33:42]
  • 提交

answer

#include<bits/stdc++.h>
#define re 
#define N 300005
#define ll long long
using namespace std;
int n,m,K,q,T;
inline void Rd(int &res){
    re char c;res=0;
    while(c=getchar(),c<48);
    do res=(res<<3)+(res<<1)+(c^48);
    while(c=getchar(),c>47);
}
int head[N],to[N<<1],nxt[N<<1],cnt1;
inline void adde(int x,int y){to[++cnt1]=y;nxt[cnt1]=head[x];head[x]=cnt1;}

int fak[N],fa[N],dep[N],stk[N],top;
void dfs(int x,int f){
    fa[x]=f;
    stk[++top]=x;
    if(top>K)fak[x]=stk[top-K];
    else fak[x]=stk[1];
    dep[x]=dep[f]+1;
    for(int i=head[x];i;i=nxt[i]){
        int y=to[i];
        if(y==f)continue;
        dfs(y,x);

    }

}
struct node{
    int x,d;
}A[N];
bool cmp(node a,node b){return a.d>b.d;}

bool mk[N],ts[N],now[N];
int Q[N],D[N];
void bfs(int st){
    ts[st]=1;
    int l=0,r=0;
    Q[++r]=st;D[r]=0;
    while(l<r){
        int x=Q[++l];
        int d=D[l];
        if(l!=1&&ts[x])continue;

        now[x]=1;mk[st]=1;
        if(d==K)continue;
        for(int i=head[x];i;i=nxt[i]){
            int y=to[i];
            if(now[y])continue;
            Q[++r]=y;D[r]=d+1;
        }
    }
    for(int i=1;i<=r;i++)now[Q[i]]=0;
}
int main(){
    Rd(n),Rd(K);
    for(int i=1;i<n;i++){
        int x,y;
        Rd(x),Rd(y);
        adde(x,y);
        adde(y,x);
    }
    dfs(1,0);
    for(int i=1;i<=n;i++)A[i]=(node){i,dep[i]};
    sort(A+1,A+n+1,cmp);

    int ans=0;
    for(int i=1;i<=n;i++){
        int x=A[i].x;
        if(mk[x])continue;
        printf("mark: %d %d\n",x,fak[x]);
        bfs(fak[x]);
        ans++;

    }
    printf("%d\n",ans);

    return 0;
}
/*
 1
2 1 
7 3
3 4
4 5
6 5
7 8
3 2
8 9
mark: 6 5
mark: 9 8
mark: 4 3
mark: 7 6
mark: 2 1
5
*/

详细

Test #1:

score: 0
Wrong Answer
time: 2ms
memory: 11992kb

input:

1 1
1

output:

mark: 1 1
1

result:

wrong answer 1st lines differ - expected: '0', found: 'mark: 1 1'