Submission #257525

# Submission time Handle Problem Language Result Execution time Memory
257525 2020-08-04T11:31:44 Z mhy908 None (JOI16_snowy) C++14
0 / 100
15 ms 1452 KB
#include "Anyalib.h"
#include <bits/stdc++.h>
#define eb emplace_back
#define mp make_pair
#define F first
#define S second
using namespace std;
typedef long long LL;
typedef pair<int, int> pii;
static int getL;

static int n, MAXD=10, re;
static int buc[510], sz[510], cnt[510];
static vector<pii> link[510];

static void dfs(int num, int par){
    sz[num]=1;
    if(par==-1)buc[num]=++re;
    for(auto i:link[num]){
        if(i.F==par)continue;
        dfs(i.F, num);
        sz[num]+=sz[i.F];
    }
    if(sz[num]>=10&&par>=0)buc[num]=++re, sz[num]=0;
}

void InitAnya(int N, int A[], int B[]){
    n=N;
    for(int i=0; i<n-1; i++){
        link[A[i]].eb(B[i], i+1);
        link[B[i]].eb(A[i], i+1);
    }
    dfs(0, -1);
}

static void dfs2(int num, int par, int dis){
    if(buc[num]){
        int tmp=dis;
        for(int i=buc[num]*9-9; i<buc[num]*9; i++){
            assert(i<=500);
            Save(i, tmp%2);
            tmp/=2;
        }
    }
    for(auto i:link[num]){
        if(i.F==par)continue;
        dfs2(i.F, num, dis+cnt[i.S]);
    }
}

void Anya(int C[]){
    for(int i=0; i<n-1; i++){
        cnt[i+1]=C[i];
        Save(501+i, C[i]);
    }
    dfs2(0, -1, 0);
}
/*
3
0 1
1 2
1
11
3
0 1 2
*/
#include "Borislib.h"
#include <bits/stdc++.h>
#define eb emplace_back
#define mp make_pair
#define F first
#define S second
using namespace std;
typedef long long LL;
typedef pair<int, int> pii;

static int n, MAXD=10, re;
static int par[510], ped[510], buc[510], sz[510];
static vector<pii> link[510];

static void dfs(int num, int par){
    sz[num]=1;
    if(par==-1)buc[num]=++re;
    for(auto i:link[num]){
        if(i.F==par)continue;
        dfs(i.F, num);
        sz[num]+=sz[i.F];
    }
    if(sz[num]>=10&&par>=0)buc[num]=++re, sz[num]=0;
}

void InitBoris(int N, int A[], int B[]){
    n=N;
    for(int i=0; i<n-1; i++){
        link[A[i]].eb(B[i], i+1);
        link[B[i]].eb(A[i], i+1);
    }
    dfs(0, -1);
}

static int dfs2(int num){
    if(buc[num]){
        int ret=0;
        for(int i=buc[num]*9-1; i>=buc[num]*9-9; i--){
            ret*=2;
            ret+=Ask(i);
        }
        return ret;
    }
    return dfs2(par[num])+Ask(ped[num]+500);
}

int Boris(int city){
    return dfs2(city);
}

Compilation message

Anya.cpp:12:15: warning: 'MAXD' defined but not used [-Wunused-variable]
 static int n, MAXD=10, re;
               ^~~~
Anya.cpp:10:12: warning: 'getL' defined but not used [-Wunused-variable]
 static int getL;
            ^~~~

Boris.cpp:11:15: warning: 'MAXD' defined but not used [-Wunused-variable]
 static int n, MAXD=10, re;
               ^~~~
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 912 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 9 ms 1452 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 15 ms 1392 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 15 ms 1276 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -