답안 #67501

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
67501 2018-08-14T11:17:22 Z reality City (JOI17_city) C++17
8 / 100
184 ms 54816 KB
#include "Encoder.h"
#include "bits/stdc++.h"
using namespace std;
#define fi first
#define se second
#define ll long long
#define dbg(v) cerr<<#v<<" = "<<v<<'\n'
#define vi vector<int>
#define vl vector <ll>
#define pii pair<int,int>
#define vii vector < pii >
#define mp make_pair
#define db long double
#define pb push_back
#define all(s) s.begin(),s.end()
template < class P , class Q > ostream& operator<<(ostream& stream, pair < P , Q > v){ stream << "(" << v.fi << ',' << v.se << ")"; return stream;}
template < class T > ostream& operator<<(ostream& stream, const vector<T> v){ stream << "[ "; for (int i=0; i<(int)v.size(); i++) stream << v[i] << " "; stream << "]"; return stream;}
template < class T > T smin(T &a,T b) {if (a > b) a = b;return a;}
template < class T > T smax(T &a,T b) {if (a < b) a = b;return a;}

static const int N = 1e6;

static const db w = 1.05;

static int len[N];

vi g[N + 69];

static int T = -1;

void dfs(int node = 0,int prev = -1) {
	int beg = ++T;
	for (auto it : g[node])
		if (it != prev)
			dfs(it,node);
	int ln = T - beg;
	auto it = lower_bound(len,len + 256,ln + 1);
	--it;
	int sz = *it;
	Code(node,1ll * sz * N + beg);
}


void Encode(int NN, int A[], int B[]) {
	int n = NN;
	for (int i = 0;i + 1 < n;++i) {
		g[A[i]].pb(B[i]);
		g[B[i]].pb(A[i]);
	}
	len[0] = 0;
	len[1] = 1;
	for (int i = 2;i < 256;++i)
		len[i] = max(len[i - 1] + 1,(int)(len[i - 1] * w));
	dfs();
}
#include "Device.h"
#include "bits/stdc++.h"
using namespace std;
#define fi first
#define se second
#define ll long long
#define dbg(v) cerr<<#v<<" = "<<v<<'\n'
#define vi vector<int>
#define vl vector <ll>
#define pii pair<int,int>
#define vii vector < pii >
#define mp make_pair
#define db long double
#define pb push_back
#define all(s) s.begin(),s.end()
template < class P , class Q > ostream& operator<<(ostream& stream, pair < P , Q > v){ stream << "(" << v.fi << ',' << v.se << ")"; return stream;}
template < class T > ostream& operator<<(ostream& stream, const vector<T> v){ stream << "[ "; for (int i=0; i<(int)v.size(); i++) stream << v[i] << " "; stream << "]"; return stream;}
template < class T > T smin(T &a,T b) {if (a > b) a = b;return a;}
template < class T > T smax(T &a,T b) {if (a < b) a = b;return a;}

static const int N = 1e6;

static const db w = 1.05;

static int len[N];

void InitDevice() {
	len[0] = 0;
	len[1] = 1;
	for (int i = 2;i < 256;++i)
		len[i] = max(len[i - 1] + 1,(int)(len[i - 1] * w));
}

int Answer(ll S,ll T) {
	int a = S % N;
	int b = a + len[S / N];
	int c = T % N;
	int d = c + len[T / N];
	if (a <= c && d <= b)
		return 1;
	if (c <= a && b <= d)
		return 0;
	return 2;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 22 ms 47872 KB Output is correct
2 Correct 23 ms 47616 KB Output is correct
3 Correct 25 ms 47616 KB Output is correct
4 Correct 24 ms 47616 KB Output is correct
5 Correct 22 ms 47560 KB Output is correct
6 Correct 22 ms 47616 KB Output is correct
7 Correct 24 ms 47600 KB Output is correct
8 Correct 23 ms 47616 KB Output is correct
9 Correct 25 ms 47616 KB Output is correct
10 Correct 22 ms 47616 KB Output is correct
11 Correct 23 ms 47616 KB Output is correct
12 Correct 23 ms 47616 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 184 ms 54816 KB Wrong Answer [6]
2 Halted 0 ms 0 KB -