尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

[AGC024E] Sequence Growing Hard 题解

[AGC024E] Sequence Growing Hard 题解
📅 发布时间:2026/6/18 21:20:50
QwQ

[AGC024E] Sequence Growing Hard 题解

首先手玩一下样例,考虑在哪些位置插入是合法,假设在 \(pos\) 位置前插入 \(x\),则如果 \(x > a_{pos}\),则显然字典序会变大,否则如果 \(a_{pos} = x\) 需要找到 \(pos\) 位置之后第一个不为 \(x\) 的位置,假设该位置为 \(t\),则如果 \(x > a_t\),那么字典序会变大。

考虑一段连续的由相同数字组成的子串,那么无论在其中哪个位置插入,最后序列的结果都是一样的,所以我们简化一下合法位置的条件,不妨钦定只能在连续段最后一个数后插入,那么只需要满足 \(x > a_{pos}\) 就行了。

进一步观察,发现对于同一个 \(A\),在不同的合法位置插入一个数,得到的序列 \(A'\) 都是不一样的,这启发我们只需要计数不同的插入方案数,而不是不同的序列组方案数。

观察不断插入的过程,每一次都在一个数前面插入,可以被看作一个建树的过程,其中每一个节点都是一个序列元素,上文中插入 \((x, pos)\) 的时候,认为 \(a_{pos}\) 是 \(x\) 的父亲。

一棵操作树的每一个拓扑序对应了一个插入方案,那么不同的插入方案数等价于:所有可能的操作树的拓扑序个数之和。

设 DP 状态 \(f_{i, j}\) 表示对于所有大小为 \(i\) 的树,根节点权值为 \(j\) 拓扑序个数之和,转移枚举第一个访问的子树的子树大小 \(l\),那么该子树内点的拓扑序 独立于 外面点的拓扑序,用组合数分配这些遍历顺序。

具体而言,子树内的贡献是 \(\sum_{k > j} f_{l, k}\),子树外的贡献是 \(f_{i - l, j}\),遍历顺序的分配的系数是 \(\binom{i - 2}{l - 1}\)。

时间复杂度:\(O(n^3)\)。

#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#include <ctime>
#define int long long
#define x first
#define y second
using namespace std;
typedef pair<int, int> PII;
typedef long double ld;
const int N = 300 + 10;int n, k, mod, f[N][N], s[N][N], C[N][N];signed main() {ios::sync_with_stdio(0), cin.tie(0);cin >> n >> k >> mod;for(int i = 0; i <= k; i ++) f[1][i] = 1, s[1][i] = k - i + 1;C[0][0] = 1;for(int i = 1, j; i <= n; i ++)for(j = 1, C[i][0] = 1; j <= i; j ++)C[i][j] = (C[i - 1][j - 1] + C[i - 1][j]) % mod;for(int i = 2; i <= n + 1; i ++) {for(int j = 0; j <= k; j ++) {for(int l = 1; l < i; l ++) {f[i][j] = (f[i][j] + C[i - 2][l - 1] * f[i - l][j] % mod * s[l][j + 1]) % mod;}}for(int j = k; j >= 0; j --) s[i][j] = (s[i][j + 1] + f[i][j]) % mod;}cout << f[n + 1][0] << '\n';return 0;
}

相关新闻

  • 实验2 现代C++编程初体验
  • 示性函数2
  • 大学四年的学费/生活费自足攻略

最新新闻

  • AD pcb设计规则设置和DRC检查
  • 浙江闸阀厂家实力排行:基于工况适配性的客观盘点 - 起跑123
  • 2026无锡网站建设哪家口碑好:实测筛选3家本土靠谱建站服务商,避坑不踩雷 - wxxwlm
  • 2026年五大SEO优化公司推荐:从传统搜索到生成式引擎,五家值得关注的服务商深度选型评测 - 资讯纵览
  • 微交互设计:从状态反馈到情感化动效的工程化实现
  • 【毕业设计】基于 Python+Vue 的习题自测型自主学习系统的设计与实现 基于 Python+Vue 的轻量化线上自主学习服务系统(源码+文档+远程调试,全bao定制等)

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号