【比赛题解】CSP2019 简要题解
D1T1 code 签到题,大家都会。 可以从高位往低位确定,如果遇到 \(1\) ,则将排名取反一下。 注意要开 unsigned long long 。 #include <bits/stdc++.h> typedef unsigned long long u64; const int MaxN = 100; u64 n, K; bool ans[MaxN]; inline void solve(u64 dep, u64 k) { if (dep == 0) return; u64 lsze = 1ull << (dep - 1); if (k < lsze) { ans[dep] = false; solve(dep - 1, k); } else { ans[dep] = true; solve(dep - 1, lsze - (k - lsze) - 1); } } int main() { freopen("code.in", "r", stdin); freopen("code.out", "w", stdout); std::cin >> n >> K; solve(n, K); for (int i = n; i >= 1; --i) putchar(ans[i] ? '1' : '0'); return 0; } D1T2 brackets 简单题,大家都会。