2023 牛客多校

7.17

我正开,D
gjk 倒开,AHJKLM

A - Almost Correct

\(s\)\(0\) 的下标集合为 \(S_{0}\)\(1\) 的为 \(S_{1}\),最右边的 \(0\) 的下标 \(r\),最左边 \(1\) 的下标 \(l\)\(s\) 没有排好序所以 \(l\le|S_{1}|<r\)

  1. \(\forall i\in S_{0},(i,r)\)
    \(\forall i\in S_{1},(l,i)\)
  2. \(\{1,2,\cdots n\}\setminus\{l,r\}\) 排序
  3. \((|S_{0}|+1,r),(|S_{0}|+2,r),\cdots,(r-1,r),(r,n),(r,n-1),\cdots,(r,r+1)\)
    \((l,|S_{0}|),(l,|S_{0}|-1),\cdots,(l,l+1),(1,l),(2,l),\cdots,(l-1,l)\)

操作次数 \(n-2+\frac{(n-2)(n-3)}{2}+n-2=119\)

证明:

  • 对于 \(s\):第二步后 \(\{1,2,\cdots,|S_{0}|\}\setminus\{l\}\cup\{r\}\)\(0\),其余位置为 \(1\)。第三步会 \(swap(|S_{0}|+1,r),swap(l,|S_{0}|)\),形成 \(00\cdots01011\cdots1\)
  • 对于 \(t\ne s\)\(|T_{0}|\ge |S_{0}|\)\(S_{1}\) 中一定有一个位置为 \(1\),第一步会使 \(t[l]=0\)。第二步后前 \(|S_{0}|\) 个位置都为 \(0\)\(t[1,r-1],t[r+1,n]\) 分别有序。第三步若 \(t[r]=0\),会与最左边的 \(1\) 交换,若 \(t[r]=1\),会与最右边的 \(0\) 交换
  • 对于 \(t\ne s\)\(|T_{1}|>|S_{1}|\):同理

C - Carrot Trees

只有最后一次询问所以放弃在线维护考虑全局

对于一个位置,设第 \(i\) 次操作后 \(a_{i}=c_{i}+b_{i}k\),操作转化为:

  • 操作一:\(c_{i+1}=c_{i}+x,b_{i+1}=b_{i}\)
  • 操作二:\(c_{i+1}=c_{i}-k\)
    • \(a_{i}\ge k\)\(b_{i+1}=b_{i}\)
    • 否则:\(b_{i+1}=b_{i}+1\)

\(b_{m}\) 就是该位置操作二失败的次数,问题转化为求 \(b_{m}\)

\(\displaystyle mn_{i}=\min_{j=1}^{i}\{c_{j}\}\),则 \(\displaystyle b_{m}=\lceil-\frac{mn_{m}}{k}\rceil\)

归纳证明:

  • 操作一:\(\displaystyle c_{i+1}>c_{i},mn_{i+1}=mn_{i}\Rightarrow b_{i+1}=b_{i}=\lceil-\frac{mn_{i}}{k}\rceil=\lceil-\frac{mn_{i+1}}{k}\rceil\)
  • 操作二:
    • \(a_{i}\ge k\Leftrightarrow c_{i+1}=c_{i}-k\ge-b_{i}k\)\(b_{i+1}=b_{i}\le-\frac{c_{i}}{k}+1\)

D - Chocolate

假设先手拿 \((1,1)\),若后手拿 \((i,j)\) 必胜则先手可以第一次就拿 \((i,j)\) 抢走必胜态

\(n=m=1\) 后手胜

posted @ 2023-07-22 11:16  ft61  阅读(25)  评论(0编辑  收藏  举报