• Solution Set 「NOIP Simu.」20221014


    \(\mathscr{A}\sim\)「Unknown」tothecrazyones

      有 \(n\) 堆石子, 第 \(i\) 堆有 \(a_i\) 个. Alice 和 Bob 轮流抓取, Alice 每次从至少一堆石子中每堆拿走恰好 \(x\) 个, Bob 每次从至少一堆石子中每堆拿走恰好 \(y\) 个, 不能操作者负. 求胜者.

      多测, \(\sum n\le5\times10^5\), \(x,y,a_i\le10^9\).


      Tag:「水题无 tag」

      经验使然, 先 \(a_i\gets a_i\bmod (x+y)\), 后面的结论好说, 只要 \(\sum[a_i\ge x]>0\)\(\sum[a_i\ge x]\ge\sum [a_i\ge y]\) 就 Alice 必胜, 否则 Bob 必胜. 大样例测过就交了, 所以签到比较迅速. 证明的 \(\bmod (x+y)\) 的正确性并不复杂, 这里就咕啦.

    \(\mathscr{B}\sim\)「Unknown」vmefifty

      给定 \(\{a_n\}\), 每次可以删除相邻且值不同的一对 \(a_i\)\(a_{i+1}\), 求至少删多少次让 \(\{a_{n'}\}\) 全部相同.

      多测, \(T\le5\), \(n\le2\times10^3\).


      Tags:「A.DP-杂项」「C.性质/结论」

      如何判断 \(a[\ell:r]\) 能否被删空? 显然, 充要条件是 \(2\mid(r-l+1)\)\(a[\ell:r]\) 中不存在严格众数.

      那么这里就有一个暴力 \(\mathcal O(n^3)\) DP, 令 \(f(i,j)\) 表示将 \(a[1:i]\) 处理直至所有值为 \(j\), 最多保留多少个值. 转移时枚举最近一段删除区间.

      优化? 注意到 \([x,y]\) 可删且 \([y+1,z]\) 可删 \(\Rightarrow [x,z]\) 可删, 而转移 \(f\) 时我们只关心是否有 \(a_i=j\). 也就是说, 只要一段区间里没有 \(j\), 我们没必要去考虑怎么一点一点把区间删掉, 而只是在意这段东西被删完后, 我下一个能去到的 \(a_i=j\) 在哪里. 因此我们只需要对 \(a_i=j\) 的位置做 \(f(i,j)\) 的转移. 这样复杂度就是 \(\mathcal O(Tn^2)\) 了.

    \(\mathscr{C}\sim\)「CF 662C」Binary Table

      Link & Solution.

    \(\mathscr{D}\sim\)「CF 1034C」Region Separation

      Link.


      Tag:「水题无 tag」

      检查一下 \(1\sim n\)\(\sum a\) 的因子是否合法, 在固定每个连通块点权后, 划分方案若存在则唯一. 之后 \(\mathcal O(n\log n)\) DP 一下切分方案数即可.

  • 相关阅读:
    [bzoj1280]卖猪
    [51nod1237]最大公约数之和V3
    [cf741C]Arpa’s overnight party and Mehrdad’s silent entering
    [bzoj1576]安全路径
    [bzoj1143]祭祀
    db_writer_processes默认大小
    oracle审计功能启动关闭
    db_writer_processes默认大小
    手机发博客
    第27课 .net程序破解
  • 原文地址:https://www.cnblogs.com/rainybunny/p/16792664.html
Copyright © 2020-2023  润新知