2025-11-7 10:20:00 TOP-BOTTOM-THEME
Enable/Disable Transition
Copyright © 2023 ~ 2025 Sinktank - 1328312655@qq.com
Illustration from 稲葉曇『リレイアウター/Relayouter/中继输出者』,by ぬくぬくにぎりめし.

9.10 偏见

D - Least Unbalanced

考虑逆过程,即序列从 \(1\) 拓展到 \(2 ^ n\)。可以保证过程中序列有 \(3\) 种情况:

  • \(\max(A) = \min(A)\)

  • \(\max(A) = \min(A) + 1 = 2m + 1\)

  • \(\max(A) = \min(A) + 1 = 2m\)

显然 \(3\) 种情况能互相转化,这说明答案只能是 \(0\)\(1\)

int n, k;

void dfs(int dep, int val) {
  if (dep == 0) return write(val, ' '), void();
  dfs(dep - 1, val >> 1);
  dfs(dep - 1, val - (val >> 1));
}

int main() {
  read(n, k);
  if (k % (1 << n)) puts("1");
  else puts("0");
  dfs(n, k);
  return 0;
}

oi 学了200年都不会想到递归输出和数学归纳的傻子

posted @ 2025-09-10 21:32  FRZ_29  阅读(8)  评论(0)    收藏  举报