Shu-How Zの小窝

Loading...

2025 11 14

  • CF2119D 计数,dp
    • 考虑当 \(p_i\) 固定的时候选 a 数组方案数是确定的,即为所有 \(p_i > 0\) 的乘积
    • 考虑 \(p_i <= i\) 这个条件,可以看成带系数的类似于括号匹配的东西
    • 很明显这并不是我想到的,我一直在想怎么用 \(a_i\)\(p_i\) 去弄,但是我没有想出来便瞅了眼题解,发现是用 \(p_i\) 来考虑的,计数题目可以考虑从不同方向计数
    • 故我们可以考虑用 \(p\) 数组去匹配 \(1-n\)\(i\),其中所有前缀 \(p\) 的个数一定大于 \(i\) 的个数
    • 定义 \(f_{i,j}\) 表示前 \(i\) 个位置中有 \(j\) 个标记没有匹配的方案数
    • 然后你就会发现 \(i\) 位置可以产生一个左括号也可以产生一个右括号,为了方便我们再定义一个 \(g_{i,j}\) 表示前 \(i\) 个位置的所有标记与前 \(i-1\) 个位置的所有操作匹配还剩下 \(j\) 个标记未匹配的方案数
    • 然后依次更新 g, f 枚举这个位置有没有标记和操作即可
  • CF1930C
    • 因为是降序后的字典序最大,所以我们一定要使最大的数尽可能大
    • 故考虑按 \(a_i + i\) 从大到小排序,若存在 \(a_i + i\) 相同的情况肯定是让 \(i\) 更小的在前面被加入从而形成一个递减序列
    • 稍微在纸上推演一下就可以发现是令 \(b_i = a_i + i\)\(b_i\) 降序排列,令 \(ans\) 为答案序列,则 \(ans_i = \min(ans_i - 1, b_i)\)
  • CF1824B1 + CF1824B2
    • 考虑 \(k\) 为奇数的情况,很显然每次是只有一个好点的
    • 考虑 \(k\) 我为奇数的情况,运用正南则反的思想,考虑 \(k\) 个点确定后求好点数量变为确定好点位置求 \(k\) 个点分布的方案数即可
      • 故直接枚举一条边 \((x,fa_x)\),可以发现答案为 \frac{\(C_{siz_x}^{\frac{k}{2}} \cdot C_{n - siz_x}^{\frac{k}{2}}\) + C_{n}{k}}{C_{n}{k}}
  • CF1770C
    • 感觉还是有点思维的吧/jk,首先如果有相同元素就一定是 NO
    • 这个我还是想了一段时间的,若有 \(k\) 使得所有 \(j < k\), \(a_i % k = j\) 的个数大于等于 2 则无解,否则一定有解,因为加的数是可以无限大的
    • \(k\) 的范围小于等于 \(n\) 即可
  • CF1693C
    • 感觉我很快就想到了从后往前考虑哎,因为 \(f_x = \min_{(x->v \in E)} f_v + \sum_{(x->u \in E)}[f_v < f_u] + 1\), 所以从 \(n\) 开始跑 dij
  • CF2062D
    • 关键是要想到观察 \(x\)\(fa_x\) 的关系,设1为根,现在 \(i\) 的值为 \(a_i\),若 \(a_x\)\(a_{fa_x}\) 的值不相同则要用 \(|a_x - a_{fa_x}|\) 次操作才行(分别把 \(u,v\) 对应为 \(x\)\(fa_x\)),则此时 \(a_1 += \max(a_x - a_{fa_x}, 0)\)
    • 故我们发现 \(a_x\) 要尽可能的是它的儿子节点的最大值
    • 结合 \(l_i,r_i\) 贪心选取即可
  • CF1646E
    • 调和级数直接秒啊,怎么还是个蓝
  • NOIP,我将夺回属于我的一切
posted @ 2025-11-14 17:07  睡神本神  阅读(9)  评论(0)    收藏  举报