ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【考试总结】2022-05-24

2022-05-24 21:01:23  阅读:154  来源: 互联网

标签:24 log 05 lowbit sum 2022 Theta rm SG


奇怪的博弈

首先黑色白色棋子是独立的,所以局面 \(\rm SG=SG_{B}\oplus SG_{W}\),而 \(\rm SG_W\) 就是所有白色石子堆的大小异或和

由于每次只能取走数目最小的一堆中的石子,那么相对大小关系不会发生改变,也就是说没取完之前都只能取这堆石子

此时可以通过简单推导得到表达式,即 \(SG_{B}=\min pile-[(\min=\max)\oplus (cnt_{min}\equiv 1\mod2)]\)

枚举最小的堆中的石子个数,此时问题本质上是求一个多重集合的子集异或和为 \(t\) 的子集数量

使用线性基判定是不是能表示出来,如果可以那么对于不在线性基中的元素,每种 “是否在子集” 的分配方案都可以对应一个线性基中的分配方案

倒序枚举复杂度即 \(\Theta(n\log W)\)

赛时的暴力 \(\rm DP\) 写错模数是怎么回事呢?

奇怪的拆分

设 \(f_n\) 表示本题中定义的集合形成的二叉树数量,考虑枚举左右儿子大小并忽略其位置可以得到下述方程

\[f_{n}=1+\frac12\sum_{i=1}^{n-1}\binom{n}{i}f_if_{n-i} \]

使用 \(\rm EGF\) 来补项化简可以得到:

\[2F=\frac 12F^2+e^x+\frac 12 \]

解方程过后使用多项式开根即可

奇怪的植物

使用 \(\rm AC\) 自动机维护所有文本串,由于 \(\sum |t_i|\le 40\) 所以可以将每个点的 \(\rm DP\) 写成矩阵的形式,套用倍增即可得到一个复杂度 \(\Theta(nl^3\log n+ql^2\log n)\) 的做法

其实第一步的倍增中不必要每个元素都处理 \(\rm 1,2,\dots \log_2dep\) 的所有转移矩阵,大可使用树状数组的思想每次消掉深度差的 \(\rm lowbit\) 来进行上跳

那么让 \(\sum\log_2\rm lowbit(dep)\) 尽量小成了现在的目的,可以在根上方添加一系列虚点,即只改变深度,不含有任何信息

设最终的添加的点数为 \(L\),初始 \(L=0\),从小向大遍历每个二进制位 \(i\),如果未确定 \(\rm lowbit\) 的元素中深度加 \(L\) 的第 \(i\) 位的数量超过第 \(i\) 位 \(1\) 的元素就让 \(L\leftarrow L+2^{i-1}\) 来让更多的元素 \(\rm lowbit\) 尽量小即可

经过上述修改之后,使用 \(\Theta(n\sum_{i}{2^i})=\Theta(n)\) 发现预处理复杂度中的 \(\log\) 消失了

标签:24,log,05,lowbit,sum,2022,Theta,rm,SG
来源: https://www.cnblogs.com/yspm/p/TestReview2022-05-24.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有