求助 od机试
#include <iostream> using namespace std; char find(int n, unsigned long long k) { if (n == 1) { return 'R'; } unsigned long long half = 1ULL << (n - 2); if (k < half) { char c = find(n - 1, k); return (c == 'R') ? 'B' : 'R'; } else { return find(n - 1, k - half); } } int main() { int T; cin >> T; for (int i = 0; i < T; i++) { int n; unsigned long long k; cin >> n >> k; char result = find(n, k); cout << ((result == 'R') ? "red" : "blue") << endl; } return 0; }
ac率 8.5 实在想不出哪里出了问题, 时间复杂度是o(n), 看着n不大,会是栈溢出的问题吗