首页 > 其他分享 >Solution Set -「NOIP Simu.」20221113

Solution Set -「NOIP Simu.」20221113

时间:2022-11-13 23:11:48浏览次数:85  
标签:dots ... Set Simu text 20221113 向量 mathcal DP

\(\mathscr{A}\sim\) 游戏

  Cover:「ARC 087E」Prefix-free Game.

  Tags:「A.博弈-SG 函数」「A.数据结构-Trie」


  想了半天 (\(\ge15~\text{min}\)) 怎么表述一堆字符串的前缀关系, 尝试发明一个数据结构 ... 我这不是个 Trie 吗? 乐.

  建 Trie, 二人操作等价于在 Trie 上插入一个串, 并且要求串的末尾必须是新建的结点 (这样可能产生不合题意的前后缀关系, 但是此时 Alice Bob 在左右子树的选择是对称的, 可以忽略). 显然, 这些结点落在空子树内, 空子树间独立, 因此只需考察单个高度为 \(h\) (设单点高度 \(h=1\)) 的空子树情况.

  打表发现, \(\text{sg}(h)=2^{\text{low}(h)}\), 异或判全局 SG, \(\mathcal O(\sum|S_i|)\) 结束. 归纳可证.

\(\mathscr{B}\sim\) 翻转

  Cover:「CF 1630D」Flipping Range.

  Tag:「C.性质/结论」


  这题不简单啊 ... 恐怕又是什么常见结论重新推了一遍, 导致做得不快.

  首先观察到, 若有长度为 \(l_1,l_2~(l_1<l_2)\) 的翻转区间, 则一定能够获得长度为 \(l_2-l_1\) 的翻转区间. 这是因为利用 \(l_2\le\lceil n/2\rceil\) 的性质, 我们可以用一个 \(l_1\) 和一个 \(l_2\) 组合出任意位置开始的 \(l_2-l_1\). 进一步, 这是更相减损, 因此我们的实际可翻转区间长度就是 \(l=\gcd\{b_i\}\).

  但是, 这个区间翻转也很麻烦, 直接 DP 状态量也很庞大, 怎么办呢?

  我的赛上思路: 如果把翻转位置考虑作 \(01\) 向量, 我们有 \(n-l+1\) 个可用向量, 它们显然线性无关, 最终可能的符号序列对应于向量张成空间内的元素. 我们现在的问题是向量 "\(1\) 太多", 翻转量大, 不好算. 那 ... 直接让相邻两个向量加一加? 得到 \(n-l\) 个形如 \([0,\dots,0,1,0,\dots,0,1,0,\dots,0]\) (中间一段有 \(l-1\) 个 \(0\)) 的向量. 空间少了一维? 最后补上 \([0,\dots,0,1,\dots,1]\) 就能得到一样的张成空间. 由于张成空间相同, 这两组向量对应的最优解是相同的. 我们暴力枚举 \([0\dots,0,1,\dots,1]\) 用或者不用, 其他 \(n-l\) 个向量的影响对于下标\(\bmod l\) 是独立的, 这就很好 DP 了.

  有点机械, 但确实很长. 不过\(\bmod l\) 这个结论后来想着组合意义还是比较明显的. 可能直接一步到位会更快一点吧.

  总之, DP 一下就能 \(\mathcal O(n)\) 求解了. 瓶颈竟然是求 \(\gcd\) 的 \(\log\).

\(\mathscr{C}\sim\) 食尸鬼 *

  Cover:「牛客 11251F」小红的食尸鬼.

  Tags:「A.DP-动态 DP」「A.数据结构-线段树」


  你要说我没做出来吧, 我很早就想到正解做法, 然后发现有 \(30\) 多种情况的表要打就想别的结论去了 ...

  这题算个广义 DDP, 也就是以函数嵌套的形式构造有结合律的状态, 然后再用数据结构维护的 DDP. 注意到连续的亡语爆炸几乎就把随从炸平了, 因而 \(\ge3\) 个的随从不会对爆炸状态产生影响. 对于每种输入类型, 一个区间需要维护出: 输出类型, 内部伤害, 存活随从数量, 对随从的伤害总数, 每种输入随从可额外造成的伤害一共 \(1+1+3+1+3=9\) 个信息. 这还没完, 有 \(11\) 种输入类型, 还需要对 S, H, A 分别写出转移信息组. 填写总共 \(9\times11\times3=297\) 个常量后就能愉快 DDP 啦! 复杂度大常数 \(\mathcal O(n+q\log n)\).

\(\mathscr{D}\sim\) 计数 *

  Cover:「ARC 086F」Shift and Decrement.

  Tags:「C.思维」「C.性质/结论」


  自从缩紧了“思维”这个 tag 的使用限制, 这样的死亡 tags 组合真的很少出现了. (

  一个 key observation 是在最后一次 \(/2\) 之前的其他 \(/2\) 不用下取整. 因此, 前面的 \(/2\) 和 \(-1\) 可以一起打包为 \(-p=\sum p_i2^i\). 如果一个位置 \(p_i>1\) 显然浪费了操作次数.

  也就是说, 在 \(k\) 步以内, 假设总 \(/2\) 次数 \(w\) 已知, 我们可以:

  • 选一个 \(p<2^w\), 用 \(\text{count}(p)+w-1\) 次操作令 \(a_i\gets (a_i-p)/2^{w-1}\).
  • 用 \(1\) 次操作, 令 \(a_i\gets\lfloor a_i/2\rfloor\).
  • 用 \(x\) 次操作, 令 \(a_i\gets a_i-x\).

  直接枚举 \(w\) 吧, 注意第二步的取整与 \(a\) 的奇偶性有关. 设 \(c_i=a_i\bmod{2^w}\), 这就和 \(p\) 与 \(c_i\) 的大小关系有关. 再枚举 \(p\) 与所有 \(c\) 的大小关系, 贪心地在大小关系不变的区间 \([l,r]\) 内选择一个 \(\text{popcount}\) 最小的数 (这个可以 \(\mathcal O(1)\) 算啊, 我看有老哥写个数位 DP). 现在前两步的操作次数及其结果全被枚举出来了, 剩下 \(x\) 的范围自然也能求出来. 为了去重, 记录排序后的差分数组 \([a_2-a_1,a_3-a_2,\cdots]\) 一定时可能的 \(a_1\) 的区间集合, 对每种差分数组的区间求并再求长度和就是答案. 随便写写可以做到 \(\mathcal O(n^2\log V\log n)\).

标签:dots,...,Set,Simu,text,20221113,向量,mathcal,DP
From: https://www.cnblogs.com/rainybunny/p/16887629.html

相关文章

  • 20221113_T2A_背包贪心
    题意Steve的城堡正在被大量的怪物袭击。共有\(n\)个怪物正在袭击城堡,第\(i\)个怪物的攻击力为\(a_i\),防御力为\(b_i\)。城内有\(m\)个怪物猎人,第\(j\)个怪物......
  • L10U5-3 Dealing with an employee's problem 20221113
    ExpressionsProblemsbehaviorDescribingproblembehavioronthejobUsetheseexpressionstoaskaboutanddescribeproblembehavioronthejob.A.What'sup?......
  • 78. Subsets
    样例输入{1,8,5,4}输出[[],[1],[1,4],[1,4,5],[1,4,5,8],[1,4,8],[1,5],[1,5,8],[1,8],[4],[4,5],[4,5,8],[4,8],[5],[5,8],[8]]publi......
  • 20221113_T1A-_并查集
    题意在一个文件目录下有\(n\)个不同的文件,每个文件都有一个文件名,其中第\(i\)个文件的文件名为\(s_i\)。这些文件名两两不同。小C希望更改一部分文件的文件名,他......
  • 73. Set Matrix Zeroes
    ivena m x n matrix,ifanelementis0,setitsentirerowandcolumnto0.Doitinplace.clicktoshowfollowup.//如果某个元素为0,则把该元素所在的行和......
  • 20221113 star模拟赛 随记
    Explo依次考虑是否取\(n\)个物品,初始有权值\(p=w\),以及常数\(k,c\)。物品分为两类,对于第\(i\)个物品:若为第一类,则选择第\(i\)个物品会得到\(a_i\timesp\)的......
  • 35. vue响应式的get和set如何触发或者过程
    首先,vue内部使用 Object.defineProperty给data中的数据添加了getter和setter函数 ;当我们访问数据的时候,会触发getter函数return给我们数据值,当我们修改数据......
  • L10U4-4 Closing a presentation 20221113
    1ReadingEffectiveconclusionsUsingsubheadingstounderstandatextAtextusuallyhasatitle(title),butwritersoftenaddsubheadings(subheadings)too......
  • 获取元素位置三大系列总结(offset、client、scroll)
    获取元素位置三大系列总结(offset、client、scroll)三大系列大小对比作用element.offsetWidth返回自身包括padding、边框、内容区的宽度,返回数值不带单位el......
  • gyp ERR! stack Error: Can't find Python executable "python", you can set the PYT
    方式一:安装python解决(正确配置系统环境变量),python(v2.7recommended,v3.x.xisnotsupported)-推荐下载:http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi......