답안 #481950

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
481950 2021-10-22T10:27:22 Z jesus_coconut Amusement Park (JOI17_amusement_park) C++17
0 / 100
22 ms 3928 KB
#include <bits/stdc++.h>
#include "Joi.h"

using namespace std;
using ll = long long;

void Joi(int N, int M, int A[], int B[], long long X, int T) {
  bool bio[N];
  memset(bio, 0, sizeof bio);
  int p = 0;
  vector<vector<int>> adj(N);
  for (int i = 0; i < M; ++i) {
    adj[A[i]].push_back(B[i]);
    adj[B[i]].push_back(A[i]);
  }
  for (auto &v: adj) sort(begin(v), end(v));
  function<void(int)> dfs = [&](int ver) {
    bio[ver] = true;
    MessageBoard(ver, (X >> p++) & 1);
    p %= 60;
    for (auto u: adj[ver]) if (!bio[u]) {
      dfs(u);
    }
  };
  dfs(0);
}
#include <bits/stdc++.h>
#include "Ioi.h"

using namespace std;

long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) {
  int limit = 20000;
  if (T == 5) limit = 120;
  else if (T == 4) limit = 960;
  else if (T == 3) limit = 250;
  vector<vector<int>> adj(N);
  for (int i = 0; i < M; ++i) {
    adj[A[i]].push_back(B[i]);
    adj[B[i]].push_back(A[i]);
  }
  for (auto &v: adj) sort(begin(v), end(v));
  int col[N];
  bool bio[N];
  memset(bio, 0, sizeof bio);
  int p = 0;
  function<void(int)> dfsfind = [&](int ver) {
    bio[ver] = true;
    col[ver] = p++;
    p %= 60;
    for (auto u: adj[ver]) if (!bio[u]) {
      dfsfind(u);
    }
  };
  dfsfind(0);
  memset(bio, 0, sizeof bio);
  long long ans = (1ll * V) << col[P];
  int cnt = 0;
  function<void(int, int)> dfs = [&](int ver, int par) {
    if (cnt >= limit) return;
    bio[ver] = true;
    for (auto u: adj[ver]) if (!bio[u]) {
      if (cnt >= limit) return;
      ++cnt;
      long long v = Move(u);
      ans |= v << col[u];
      dfs(u, ver);
      if (cnt >= limit) return;
      ++cnt;
      Move(ver);
    }
    if (cnt >= limit) return;
    if (par != -1) {
      ++cnt;
      assert(binary_search(begin(adj[ver]), end(adj[ver]), par));
      Move(par);
    }
  };
  dfs(P, -1);
  return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 496 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 20 ms 3928 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 488 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 22 ms 3912 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 20 ms 3892 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -