답안 #737076

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
737076 2023-05-06T14:33:50 Z mjhmjh1104 Speedrun (RMI21_speedrun) C++17
0 / 100
210 ms 868 KB
#include "speedrun.h"
#include <cstdio>
#include <vector>
using namespace std;

int n;
vector<int> adj[1006];
bool visited[1006];

void assign(int x, int y, int z) {
    for (int i = 0; i < 10; i++) setHint(x + 1, y * 10 + i + 1, z & 1 << i ? true : false);
}

int get(int y) {
    int ret = 0;
    for (int i = 0; i < 10; i++) ret |= getHint(y * 10 + i + 1) << i;
    return ret;
}

void _dfs(int x, int prev = -1) {
    int pv = -1;
    for (auto &i: adj[x]) if (i != prev) {
        if (pv == -1) assign(x, 0, i);
        else assign(pv, 1, i);
        pv = i;
        _dfs(i, x);
    }
    if (pv == -1) assign(x, 0, 1023);
    else assign(pv, 1, x);
}

void assignHints(int subtask, int n, int a[], int b[]) {
    ::n = n;
    for (int i = 1; i < n; i++) {
        adj[a[i] - 1].push_back(b[i] - 1);
        adj[b[i] - 1].push_back(a[i] - 1);
    }
    setHintLen(20);
    assign(0, 1, 1023);
    _dfs(0);
}

void dfs(int x, int prev = -1) {
    visited[x] = true;
    int child = get(0);
    if (child != 1023 && !visited[child]) {
        goTo(child + 1);
        dfs(child);
        goTo(x + 1);
    }
    int nx = get(1);
    if (nx != 1023 && !visited[nx]) {
        goTo(nx + 1);
        dfs(nx);
        goTo(x + 1);
    }
}

void speedrun(int subtask, int n, int st) {
    ::n = n;
    dfs(st - 1);
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 177 ms 672 KB Solution didn't visit every node
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 126 ms 724 KB Solution didn't visit every node
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 210 ms 732 KB Output is correct
2 Correct 156 ms 796 KB Output is correct
3 Incorrect 191 ms 868 KB Solution didn't visit every node
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 77 ms 676 KB Solution didn't visit every node
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 113 ms 724 KB Solution didn't visit every node
2 Halted 0 ms 0 KB -