入门级的构造题乱做

https://yhx-12243.github.io/OI-transit/?tag=构造

新年的拯救计划

https://uoj.ac/problem/460

之字形构造!

奥林匹克五子棋

https://uoj.ac/problem/225

OXXOOXXOOXXOO
XOOXXOOXXOOXX
OXXOOXXOOXXOO
XOOXXOOXXOOXX
OXXOOXXOOXXOO

组合动作

https://uoj.ac/problem/405

  1. 首先找出初始的字母是什么:
    输入 AB,如果有分:那就输入 A,如果还有分,那就是 A;如果第二次没有分,那就是 B。其它同理。
  2. 假设首字母是 A,即后面字母可能是 BXY。如果现在我们已经知道了答案的前缀 $(长度为 \(l\)),那么输入 $X$BB$BX$BY,那么下一个字母是 B/X/Y 当且仅当返回值分别为 \(l+2\),\(l+1\),\(l\)
  3. 但是你发现输入一次需要 \(4l+7\),如果枚举到最后一个,那么就是 \(4(n-1)+7>4n\) 不行。所以询问两次,分别询问 $B,$X。哪个有分就是哪个,都没有分就是 Y

出乎意料地,这样刚好用了 \(n+2\) 次询问(即为题目的满分做法)!

posted @ 2022-01-20 15:50  BlankAo  阅读(193)  评论(0编辑  收藏  举报