Submission #257549

# Submission time Handle Problem Language Result Execution time Memory
257549 2020-08-04T11:59:28 Z sjimed None (JOI16_snowy) C++14
0 / 100
23 ms 1856 KB
#include "Anyalib.h"
#include<bits/stdc++.h>
using namespace std;

#define fast ios::sync_with_stdio(false); cin.tie(NULL)
#define fi first
#define se second
#define pb push_back
#define eb emplace_back
#define em emplace
#define all(v) (v).begin(), (v).end()
#define pre(a) cout<<fixed; cout.precision(a)
#define mp make_pair

typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<int,pii> pipii;
const int inf = 1e9;
const ll INF = 1e18;

static int n;
static vector<int> g[555];
static int a[555];
static int b[555];
static bool chk[555];
static int d[555];
static int num[555];
static int cost[555];
static int p[555];
static int dist[555];
static int cnt = 500;

static void dfs(int x) {
	for(auto i : g[x]) {
		if(i == p[x]) continue;

		p[i] = x;
		dfs(i);

		d[x] = max(d[x], d[i] + 1);
	}

	if(d[x] == 10 || x == 0) {
		num[x] = cnt;
		cnt += 9;
		chk[x] = true;
		d[x] = -1;
	}
}

static void dep(int x) {
	for(auto i : g[x]) {
		if(i == p[x]) continue;

		dist[i] = dist[x] + cost[i];

		dep(i);
	}
}

void InitAnya(int N , int A[] , int B[]) {
	n = N;

	for(int i=0; i<n-1; i++) {
		a[i] = A[i], b[i] = B[i];

		g[a[i]].eb(b[i]);
	}

	dfs(0);
}

void Anya(int C[]) {
	for(int i=0; i<n-1; i++) {
		if(p[a[i]] == b[i]) cost[a[i]] = C[i];
		else cost[b[i]] = C[i];
		
		Save(i, C[i]);
	}

	dep(0);

	for(int i=0; i<n; i++) {
		if(!chk[i]) continue;

		for(int j=num[i]; j < num[i] + 9; j++) {
			if(dist[i] & (1 << j)) Save(j, 1);
			else Save(j, 0);
		}
	}
}
#include "Borislib.h"
#include<bits/stdc++.h>
using namespace std;

#define fast ios::sync_with_stdio(false); cin.tie(NULL)
#define fi first
#define se second
#define pb push_back
#define eb emplace_back
#define em emplace
#define all(v) (v).begin(), (v).end()
#define pre(a) cout<<fixed; cout.precision(a)
#define mp make_pair

typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<int,pii> pipii;
const int inf = 1e9;
const ll INF = 1e18;

static int n;
static vector<int> g[555];
static int a[555];
static int b[555];
static bool chk[555];
static int d[555];
static int p[555];
static int num[555];
static int cnt = 500;
static int edge[555];

static void dfs(int x) {
	for(auto i : g[x]) {
		if(i == p[x]) continue;

		p[i] = x;
		dfs(i);

		d[x] = max(d[x], d[i] + 1);
	}

	if(d[x] == 10 || x == 0) {
		num[x] = cnt;
		cnt += 9;
		chk[x] = true;
		d[x] = -1;
	}
}

void InitBoris(int N , int A[] , int B[]) {
	n = N;

	for(int i=0; i<n-1; i++) {
		a[i] = A[i], b[i] = B[i];

		g[a[i]].eb(b[i]);
	}

	dfs(0);

	for(int i=0; i<n-1; i++) {
		if(p[a[i]] == b[i]) edge[a[i]] = i;
		else edge[b[i]] = i;
	}

}

int Boris(int city) {
	int i;
	int ans = 0;
	for(i = city; !chk[i]; i = p[i]) {
		ans += Ask(edge[i]);
	}

	for(int j = num[i]; j < num[i] + 9; j++) {
		ans += Ask(j) << (j - num[i]);
	}

	return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 996 KB Output is correct
2 Incorrect 2 ms 920 KB Wrong Answer [7]
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 13 ms 1280 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 23 ms 1856 KB Wrong Answer [4]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 12 ms 1792 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -