제출 #1242125

#제출 시각아이디문제언어결과실행 시간메모리
1242125duckindog죄수들의 도전 (IOI22_prison)C++20
65 / 100
7 ms1096 KiB
#include "prison.h" #include <bits/stdc++.h> using namespace std; vector<vector<int>> devise_strategy(int N) { vector<vector<int>> ret(25, vector<int>(N + 1)); int num = 0; vector<vector<int>> trans(2, vector<int>(13)); for (int i = 12; i >= 1; --i) { trans[0][i] = ++num; trans[1][i] = ++num; } { // set begin bit ret[0][0] = 0; for (int i = 1; i <= N; ++i) { ret[0][i] = trans[i >> 12 & 1][12]; } } for (int j = 0; j <= 1; ++j) { int aFew = -2, bFew = -1; for (int i = 12; i >= 1; --i) { swap(aFew, bFew); int id = trans[j][i]; ret[id][0] = (i & 1 ? 0 : 1); for (int value = 1; value <= N; ++value) { int bit = (value >> i & 1); if (bit != j) { ret[id][value] = (j < bit ? aFew : bFew); continue; } if (i == 1) { ret[id][value] = ((value >> 0 & 1) ? aFew : bFew); } else ret[id][value] = trans[value >> (i - 1) & 1][i - 1]; } } } return ret; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...