糖糖复活

何意味?和一位?合一位?合意喂?合意未?

  • 9.7

    打洛谷冲刺 NOIP 后期的模拟赛?不过只打了半场。

    • R14 - T1 序列

      考虑先进行差分 \(C_{i} =A_{i+1} - A_{i}\),我们的目标是将每个 \(C_i\) 都变为 \(0\),因此我们每次都一定会选一对 \(C_i>0,C_j<0(i<j)\),由于对任意 \(C_i=\sum_{i=1}^ia_i=a_{i+1}\),所以可以得出最小次数为 \(\frac{1}{2}\sum_{i=0}^n|C_i|\)

      观察发现最小时必然不会出现两个相互包含的区间,我们贪心在每个 \(i\) 寻找前面 \(j\) 进行匹配,用队列维护即可。

      至于最大值就比较肆意了,就是贪心找靠后的匹配点,这个也是很显然的,我们用栈维护即可。

    • R14 - T1 序列

      首先我们能发现不可能连续复制两次,因为这样没有意义,不会改变任何东西

      复制后必然紧跟着粘贴,所以操作序列为 复制一次,粘贴若干次,再复制一次,粘贴若干次... 一共有 \(k\) 轮这样的复制,每一轮的操作次数为 \(a_1\)\(a_k\) 次。

      通过计算我们可以算出这么多次操作后到底有多少字符,是 \(\prod a_i\) 个字符,直接计算代价,我们得出其代价为 \(kx+y\sum_{i=1}^k(a_i-1) = (x-y)+y\sum_{i=1}^ka_i\)

      我们发现,答案不会存在 \(a_j-a_i≥2\) 的情况,因为这种情况我们可以转化为 \(a_i+1\)\(a_j-1\),这样总和不变,但是总乘积 \(\prod a_i\) 会变大,因此最优解必然不存在两个差值大于 \(1\)\(a_i\)

      我们也就可以将这些 \(a_i\) 划分成若干段,根据上面的结论其中有且仅有 \(t\)\(t+1\),我们枚举 \(k\),并且在内部再枚举一个 \(p\),代表有 \(p\)\(t\),那么也就有 \(k-p\)\(t+1\)

      我们需要找到最小的 \(t\)\(t^p(t+1)^{k-p}>N\),这似乎可以直接二分实现。

      我们此时来分析一下复杂度发现 \(k\) 实际上是 \(\log n\) 级别的,这样我们的复杂度也就是 \(\mathcal O(\log^4 n)\) 级别的,可以通过此题

  • 9.8/9.9

    牛魔怎么忘写了,一块补了

    • P10680
      我们能发现题目大抵就是说:\(\max\{a_i\}<\min\{b_i\}\),但是也会发现有一些很不牛的奶龙属于特例。

      观察题目决定先考虑特殊性质,不存在 \(a_i > b_i\) 时是完全符合最开始的结论的,我们叫它正区间,因为这个时候没有不牛的奶龙,可以直接线段树维护找一个点被覆盖次数的最大值作为答案。

      若存在第 \(i\) 只奶龙 \(a_i>b_i\),我们叫它反区间,虽然第 \(i\) 只奶龙不会吃掉自己(有提到 $i\not=j $),但是会影响到上面的判断,我们可以发现这样的奶龙只会在被包含的情况下选且仅会选一个。

      如果反区间不被完全包含而是和正区间有交,我们可以把交点拿出来当做被覆盖的点,然后无视这个反区间即可。

      那么我们就可以得出做法:维护所有正区间的覆盖次数以及是不是反区间,如果是被包含的反区间则在计算时将答案额外 \(+1\) 即可。

      复杂度 \(\mathcal O(n \log n)\),可以通过本题。

    • P1316
      这个容斥有点典了吧,所有的子串数是 \(\frac{l(l+1)}{2}\) 但是有重复的所以考虑进行容斥,枚举子串长度为 \(l\) 分别考虑对应的贡献,假设出现了 \(c\) 次,出现位置的集合为 \(S\) 那么对答案的贡献就是 \((-1)^{\text{popcount}(S)+c}\) 接下来就差方案数,我们用并查集维护应该与上一位相同的位置,设联通快个数也就是没有约束的位置为 \(x\),总贡献为 \(ans=(-1)^{\text{popcount}(S)+c}m^x\)

    • P10680
      发现带修太坏了,所以先考虑如何不带修的做。似乎不带修是一个 ST 表的板子?我们设 \(f_{i,k}\) 表示从 \(i\) 开始一直到 \(i+2^k-1\) 张牌共 \(2^k\) 张牌决斗剩下的最后一张牌的力量大小,那么我们就可以得出一个显然的转移:\(f_{i,k}= |f_{i,k-1}-f_{i+2^k-1,k-1}|\)

      那么不带修的做完了,带修的怎么办呢?总不能对每次修改都建立一个 ST 表吧?考虑进行根号分治平衡复杂度,对于 \(k<B\) 的部分,我们可以直接进行暴力重构,否则在查询的时候递归向下查询然后合并即可。

    • P10334
      水题,直接单调栈即可。

posted @ 2025-09-08 10:55  Vsinger_洛天依  阅读(20)  评论(0)    收藏  举报