THUPC2023(初赛)

大富翁

注意到每个支配的点对恰被计算一次,且同一个人的可以看作"给自己钱"

从式子的角度,记先手所选的集合为\(S\),则答案即

\[\begin{array}{ll}&\sum_{x\in S}\left(\sum_{y\not\in S}[x支配y]-[y支配x]\right)-w_{x}\\=&\left(\sum_{x支配y}[x\in S][y\not\in S]-[x\not\in S][y\in S]\right)-\sum_{x\in S}w_{x}\\=&\left(\sum_{x支配y}[x\in S]-[y\in S]\right)-\sum_{x\in S}w_{x}\\=&\sum_{x\in S}(sz_{x}-dep_{x}-w_{x})\end{array} \]

按从小到大排序,先手即取所有下标为奇数的项,时间复杂度为\(O(n\log n)\)


拧螺丝

将过程逆序,维护状态集合\(S\),每轮操作即——

  • \(S\)中每个数减去非负整数,要求这些非负整数的和不超过\(k\)
  • \(S\)中加入\(\max_{x\in S}x\)

初始\(S=\{n\}\),最终要求\(\forall x\in S,x=0\)

显然第一步应该尽量平均的减,进而归纳证明\(S\)中的极差\(\le 1\)

此时,\(S\)可以用三元组\((x,y,z)\)描述,即由\(x\)\(z\)\(y\)\(z-1\)​构成,则每轮转移为

\[\begin{cases}(x-k+1,y+k,z)&x>k\\(x+y-(k-x)\%(x+y)+1,(k-x)\%(x+y),z-\lfloor\frac{k-x}{x+y}\rfloor-1)&x\le k\end{cases} \]

第一类转移可以快速实现至\(x\le k\),第二类转移次数为\(O(n)\)\(z\)严格减小)

需要使用高精度,时间复杂度为\(O(\frac{n^{2}}{\omega})\)(其中\(\omega\)为压位)


快速最小公倍数变换

对于素因子\(p\),预处理出\(v_{p}(r_{i})\)的最大值\(\alpha_{p}\)和次大值\(\beta_{p}\),并分类讨论:

  • \(\alpha_{p}=\beta_{p}\),则操作后\(v_{p}\)的最大值为\(\max\{v_{p}(r_{i}+r_{j}),\alpha_{p}\}\)

  • \(\alpha_{p}>\beta_{p}\),则操作后\(v_{p}\)的最大值为\(\begin{cases}\beta_{p}&v_{p}(r_{i})=\alpha_{p}\or v_{p}(r_{j})=\alpha_{p}\\\max\{v_{p}(r_{i}+r_{j}),\alpha_{p}\}&otherwise.\end{cases}\)

    关于前者,也即\(\max\{v_{p}(r_{i}+r_{j}),\alpha_{p}\}+(\beta_{p}-\alpha_{p})\),可以看作选\(v_{p}(r_{i})=\alpha_{p}\)有系数\(p^{\beta_{p}-\alpha_{p}}\)

综上,将每个\(r_{i}\)带系数卷积即可,时间复杂度为\(O((n+R)\log R)\)(其中\(R=\max r_{i}\)


种苹果

参考这里


速战速决

结论:若先手有两张点数相同的牌,则答案为\(n\)

时刻保证先手手中有与栈底相同的牌,第一轮即放其中一张

之后每一轮,若与后手下一张牌点数相同的另一张牌不在后手手中,则放与栈底相同的牌

否则,显然先手的手牌数\(\ge\) 后手的手牌数 \(>1\)(后手有两张相同),放其他任意一张即可

若不为此情况,当\(n=1\)时无解,否则放\(\{a_{n},a_{[1,n)},a_{1},a_{1}\}\)即可

时间复杂度为\(O(n)\)


公平合作

\(A=\max_{i=1}^{n}a_{i}\),并称答案概率的情况为"先手获胜"

问题分为两步:

  • 求出当先手结果为\(s\)时获胜的概率,记为\(g_{s}\)(其中\(s\in (L-A,L]\)

    定义\(f_{k}\)当前先后手结果分别为\(s,k\)时先手获胜的概率,则\(f_{k}=\begin{cases}1&k>L\\0&s<k\le L\\\frac{1}{n}\sum_{i=1}^{n}f_{k+a_{i}}&k\le s\end{cases}\)

    此时\(g_{s}=f_{0}\),将序列翻转,即求\(x^{L}\mod (x^{A}-\frac{1}{n}\sum_{i=1}^{n}x^{A-a_{i}})\),可以类似快速幂实现

    在此基础上,即得到\(f_{0}=\sum_{i=L-A+1}^{L}x_{i}f_{i}+C\),顺序枚举\(s\)并对该式递推即可

  • 求出答案

    定义\(f_{k}\)表示当先手结果为\(k\)时获胜的概率,则\(f_{k}=\begin{cases}0&k>L\\\max(g_{k},\frac{1}{n}\sum_{i=1}^{n}f_{k+a_{i}})&L-A<k\le L\\\frac{1}{n}\sum_{i=1}^{n}f_{k+a_{i}}&k\le L-A\end{cases}\)

    最终答案即\(f_{0}\),暴力求出\(k>L-A\)\(f_{k}\)后,类似前者计算即可

时间复杂度为\(O(n+A^{2}\log L)\)


喵了个喵 II

\(x_{i,j}\)\(i\)\(a\)序列中第\(j\)次出现的位置(其中\(j\in [1,4]\)

设子序列所选位置构成集合\(S\subseteq [1,4n]\),则有以下结论——

结论:若有解,则存在一组解\(S\),满足\(\forall i\in [1,4n],|S\cap [1,i]|\ge \lceil\frac{i}{2}\rceil\)

选择一组解\(S\),并最大化\(S\)中最小的不满足上述条件的\(i\)(若不存在即得证)

根据\(i\)的最小性,有\(2\not\mid i\)\(|S\cap [1,i)|=\frac{i-1}{2}\),即\([1,i)\)这个前缀被独立的划分

此时,不妨将\(S\cap [i,n]\)取反使\(i\)满足条件,即与最大化矛盾

推论:任取这样的一组解\(S\),则\(\forall i\in [1,n],x_{i,1}\in S\)\(x_{i,4}\not\in S\)

以前者为例,若\(x_{i,1}\not\in S\),由于\(|S\cap [1,x_{i,1}]|\ge \lceil\frac{x_{i,1}}{2}\rceil\),其必然与\(S\cap [1,x_{i,1})\)内匹配,矛盾

\(P_{i}=[x_{i,2}\in S]\),仅需保证任意\(i\ne j\)满足\(\begin{cases}[x_{i,1}<x_{j,1}]=[x_{i,P_{i}+2}<x_{j,P_{j}+2}]\\ [x_{i,1}<x_{j,3-P_{j}}]=[x_{i,P_{i}+2}<x_{j,4}]\\ [x_{i,3-P_{i}}<x_{j,1}]=[x_{i,4}<x_{j,P_{j}+2}]\\ [x_{i,3-P_{i}}<x_{j,3-P_{j}}]=[x_{i,4}<x_{j,4}]\end{cases}\)

(即\(\forall p,q\in [1,2]\),两个序列中第\(p\)\(i\)和第\(q\)\(j\)位置关系相同)

枚举\(P_{i},P_{j}\)及限制,即对不满足的\((i,j)\)在2-sat中建边(形如\(P_{i}\rightarrow \overline{P_{j}}\)\(P_{j}\rightarrow \overline{P_{i}}\)

用可持久化线段树优化建图,时间复杂度为\(O(n\log n)\)


背包

设性价比\(\frac{c}{v}\)最高的物品为\(i\),则其余物品数量总和\(\le v_{i}\)

\(>v_{i}\),任意排列后求前缀和,总存在一个区间\(\mid v_{i}\),则替换为\(i\)一定不劣

同时,由于\(V\ge (\max v_{i})^{2}\),因此仅关心于这些物品模\(v_{i}\)的同余最短路(每次取模额外减去\(c_{i}\)

直接计算即可,时间复杂度为\(O(n \max v_{i}+q)\)


乱西星上的空战

咕咕咕


欺诈游戏

考虑纳什均衡,显然任意两个策略无单调性,因此对方所有决策期望结果相同

  • 对于走私者,设其选\(i\)的概率为\(P_{i}\),则\(\forall j\in [0,n],\frac{j}{2}\sum_{i=0}^{j-1}P_{j}+\sum_{i=j+1}^{n}i\cdot P_{i}\)相同

    考虑\(j\)\(j-1\)时的两式,即\(j\cdot P_{j}=\frac{j}{2}P_{j-1}+\frac{1}{2}\sum_{i=0}^{j-2}P_{i}\),任取\(P_{0}\)递推后约至\(\sum_{i=0}^{n}P_{i}=1\)即可

  • 对于检查官,设其选\(i\)的概率为\(P_{i}\),则\(\forall j\in [0,n],j\sum_{i=0}^{j-1}P_{i}+\frac{1}{2}\sum_{i=j+1}^{n}i\cdot P_{i}\)相同

    类似的,可得\(\frac{j}{2}\cdot P_{j}=j\cdot P_{j-1}+\sum_{i=0}^{j-2}P_{i}\),同理计算即可

时间复杂度为\(O(n)\)


众数

显然可以贪心,设后缀最大值依次为\(b_{1}(=n),b_{2},...,b_{k}\),则答案即\(\sum_{i=1}^{k}i\sum_{j=1}^{n}[1,a_{j}]\cap (a_{b_{i-1}},a_{b_{i}}]\)

简单计算即可,时间复杂度为\(O(n+\max a_{i})\)


最后的活动

\(f_{s}\)为剩余分数为\(s\)时的答案,考虑如何求——

定义\(g_{i,S}\)表示前\(i\)层分数为\(S\)时的答案,转移即

\[g_{i,S}=\begin{cases}f_{s-S}&i=n\\\max(f_{s-S},p_{0}f_{s-\lfloor\frac{sc}{100}\rfloor}+p_{1}g_{S+s_{1}}+p_{2}g_{S+s_{2}})&i<n\end{cases} \]

注意到\(S\)仅有\(2^{n}\)种,直接爆搜即可

另外,可能会转移到\(f_{s}\)自身,可以二分\(f_{s}\)并判定

时间复杂度为\(O(m2^{n}\log \frac{1}{\epsilon})\)


世界杯

posted @ 2023-03-06 16:21  PYWBKTDA  阅读(644)  评论(0编辑  收藏  举报