当前位置: 首页 > news >正文

CF2039E Shohag Loves Inversions

CF2039E Shohag Loves Inversions

题意:

给你一个数列,初始数列为 $ a = [0, 1] $ ,现在重复进行以下操作若干次:

  • 将当前数组中逆序对个数 \(k\) 插入当前数组中任意一个位置,包括开头或者结尾。

其中 \(n\le 1e6\)

思路:

题意的逆序对数显然不好维护,首先模拟一下操作过程:

初始的逆序对数 \(k=0\) ,在一步步插入的过程中,若插入到了 \(1\) 的后面,我们的逆序对数发生了第一次的改变,\(k=0 \to k=1\) ,序列状态此时为 \(0\dots010\)

然后一步步插入 \(1\) ,当第一次插入到了最后一个 \(0\) 的前面,我们逆序对数再次发生改变 \(k=1\to k\ge 2\)

再次插入 \(2\) ,当我们一直插入到序列末尾的 \(2\) 连续段之中时,逆序对数不变,如果插入到了除此之外的前面的任意一个位置,\(k\) 的值发生改变。

我们发现当 \(k\ge 2\) 时无论如何操作,最终的过程都与 \(k=2\) 同理,所以此时我们发现问题可以分析成三种子问题:\(k=0\)\(k=1\)\(k\ge 2\) ,我们最终只需要把这三种问题形成的序列种数相乘即可。

  • \(k=0\) ,序列一定为 \(0\dots 01\)

  • \(k=1\) ,序列一定为 \(0\dots 0101\dots 1\)

  • \(k\ge 2\) ,可以设计 \(dp\) 状态,观察到若存在两个不同的刚刚升级完的序列,那么此时无论如何插入新逆序对数的位置,对于方案数都不会有影响,所以此时的序列方案数仅与序列长度相关,所以可设 \(f_i\) 表示序列长度为 \(i\) 的刚刚升级完的序列方案数为 \(f_i\) ,那么我们此时就分为两种情况进行插入:

    1. 插入序列末尾的 \(k\) 连续段,对于逆序对数无影响
    2. 插入 \(k\) 连续段前一个位置之前,逆序对数改变

    那么我们就有转移 \(f_i=\sum_j j\times f_j\)

所以我们只需要把这三种情况拼接即可。

http://www.hskmm.com/?act=detail&tid=9987

相关文章:

  • U522155 板垣 カノエ is WATCHING YOU std
  • ctfshow web
  • 代码随想录算法训练营第三天 | leetcode 203 707 206
  • Codeforces Round 1051 (Div. 2) A~D2
  • 【F#学习】数组:Array
  • CTFWEB姿势总结
  • 规模化加速AI:从用户、开发者到企业的深度策略解析
  • ctfshow 菜狗杯
  • 国际服务器(VPS):泰国、印尼、菲律宾、马来西亚、香港、台湾、新加坡、日本、美国、英国等。
  • 缓存常见问题
  • ctfshow 电子取证
  • Hello,World!
  • 最新IDEA 2025 专业版破解永久破解教程(附资源)intellij IDEA
  • AtCoder ABC423F - Loud Cicada 题解 容斥原理
  • 1756:八皇后
  • 矩阵置零-leetcode
  • 嘉立创常用快捷键
  • 02020402 EF Core基础02-EF Core数据的增删改查
  • conda 无法安装依赖 CondaHTTPError: HTTP 000 CONNECTION FAILED for url: tsinghua tencentaliyun
  • 牛客刷题-Day2
  • 图解支付系统账务系统核心设计 - 智慧园区
  • vulnhub(持续更新)
  • 小爱同学连接电脑进行交互 教程
  • 网络流初步浅谈:EK与Dinic
  • 解码C语言结构体
  • 已完成今日求所有满足长为 $a$ 的和为 $b$ 的按位或为 $c$ 的非负整数序列的异或和的异或和大学习
  • Hello Yqc!
  • 2025.9.19——卷9-10选择
  • 软件工程学习日志2025.9.19
  • ECT-OS-JiuHuaShan 框架元推理,是人类良医与福音