题解:P7213 [JOISC 2020] 最古の遺跡 3

news/2025/10/31 9:10:54/文章来源:https://www.cnblogs.com/LUlululu1616/p/19178766

需要一些观察的计数。

题意:有一个由 \(1,2,\cdots n\) 各出现两次构成的序列 \(a\),对其进行 \(n\) 次操作,如果一个元素满足后面的元素没有和他相等的,那么他就不变,否则该元素减 \(1\),减到 \(0\) 的元素移除。现在给出最后剩下的元素在原序列中的下标,求原序列有多少种。

做法:

首先先进行一个简单的转化,我们先给每种数内部定序,这样的好处是我们可以直接变成一个 \(2n\) 长序列而不用考虑一种数会不会放多次,最后计算的时候除以 \(2^n\) 即可。

从值域上考虑,发现根本没法描述位置的事情,所以考虑直接从位置上考虑。

考虑如果给定一个序列,最后剩下的下标如何确定。我们从后往前扫,假设当前高度为 \(h_i\),如果 \([x,h_i]\) 中的数都已经出现过,那么这个位置的高度就是 \(x-1\),当然 \(0\) 就不保留。称这些保留的位置为关键点。

那么我们可以根据这个东西去设计一个 dp,\(dp_{i,j}\) 代表后 \(i\) 个数,目前关键点构成的元素已经填满了 \([1,j]\)\(j+1\) 一定没有,剩余的有没有都可以。记当前后缀中出现了 \(cnt0\) 次非关键点,\(cnt1\) 次关键点。

考虑对于关键点和非关键点转移。

  • 非关键点。

那么要求一定是在 \([1,j]\) 内的,否则就会留下来。因为已经用掉了 \(cnt_0\) 次,同时 \([1,j]\) 各用了一次,所以系数为 \(j-cnt_0\)

\[dp_{i-1,j}\leftarrow dp_{i,j}(j-cnt_0) \]

  • 关键点。

第一种是我加了,但是没加到 \(j+1\) 这个位置,那这样就不会有新的连续段,貌似贡献不好统计。不好统计那么我们就留到后面在确定,所以转移式:

\[dp_{i-1,j}\leftarrow dp_{i,j} \]

第二种是我加到 \(j+1\) 这个位置,枚举一下转移到 \(k\),那么我需要在前面没确定的那些位置里随便选几个出来组成 \([j+2,k]\),方案数为 \(\binom{cnt1-j}{k-j-1}\)。然后考虑我这个数的选法,为 \([j+2,k]\) 加起来有 \(k-j-1\) 种,还有 \(2\) 种是选 \(j+1\),方案数 \(k-j+1\),最后还要乘上我形成长度为 \(k-j-1\) 的段的方案数,这里用 \(g_{k-j-1}\) 表示,等会儿我们会具体来解释 \(g\) 的求法。有转移式:

\[dp_{i-1,k}\leftarrow dp_{i,j}\binom{cnt1-j}{k-j-1}(k-j+1)g_{k-j-1} \]

最后考虑 \(g\) 怎么求,直接枚举上一个位置选的是哪里,然后类似上面这个计算方式,有转移式:

\[g_n=\sum_{i=1}^n \binom{n-1}{i-1}g_{i-1}g_{n-i} \]

代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 1205, mod = 1e9 + 7;
int n, use[maxn], g[maxn], C[maxn][maxn], dp[maxn][maxn];
signed main() {cin >> n;for (int x, i = 1; i <= n; i++)cin >> x, use[x] = 1;n <<= 1;C[0][0] = 1;for (int i = 1; i <= n; i++) {C[i][0] = 1;for (int j = 1; j <= i; j++)	C[i][j] = (C[i - 1][j - 1] + C[i - 1][j]) % mod;}g[0] = 1;for (int i = 1; i <= n; i++) {for (int j = 1; j <= i; j++)g[i] = (g[i] + g[j - 1] * C[i - 1][j - 1] % mod * g[i - j] % mod * (j + 1) % mod) % mod;}dp[n + 1][0] = 1;int cnt[2] = {0, 0};for (int i = n; i >= 1; i--) {if(use[i]) {cnt[1]++;for (int j = cnt[0]; j <= cnt[1] - 1; j++) {dp[i][j] = (dp[i][j] + dp[i + 1][j]) % mod;for (int k = j + 1; k <= cnt[1]; k++) dp[i][k] = (dp[i][k] + dp[i + 1][j] * (k - j + 1) % mod * C[cnt[1] - j - 1][k - j - 1] % mod * g[k - j - 1] % mod) % mod;}}else {cnt[0]++;for (int j = cnt[0]; j <= cnt[1]; j++)dp[i][j] = (dp[i][j] + dp[i + 1][j] * (j - cnt[0] + 1)) % mod;}//	for (int j = cnt[0]; j <= cnt[1]; j++)//		cout << i << " " << j << " " << dp[i][j] << endl;}for (int i = 1; i <= n / 2; i++)dp[1][n / 2] = dp[1][n / 2] * (mod + 1) / 2 % mod;cout << dp[1][n / 2] << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/951384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年正规的净化材料净化板厂家最新推荐权威榜

2025年正规的净化材料净化板厂家最新推荐权威榜 在当今建筑与工业领域,净化材料的需求日益增长,尤其是在医疗、电子、食品加工等行业,对洁净环境的要求极高。选择一家正规、可靠的净化板厂家至关重要。本文将根据产…

2025年诚信的渔用钢丝绳索具厂家推荐及采购参考

2025年诚信的渔用钢丝绳索具厂家推荐及采购参考行业概述渔用钢丝绳索具作为海洋捕捞、水产养殖等渔业生产活动中的关键装备,其质量直接关系到作业安全和经济效益。随着我国渔业现代化进程加快,对高性能、高可靠性钢丝…

2025年比较好的钢质艺术楼梯用户口碑最好的厂家榜

2025年钢质艺术楼梯用户口碑最好的厂家榜 在现代建筑与家居设计中,楼梯不仅是连接空间的工具,更是彰显品位与艺术审美的核心元素。钢质艺术楼梯凭借其坚固耐用、设计灵活、风格多样等特点,成为高端住宅、商业空间、…

2025年正规的分子筛空分制氮机厂家推荐及选择指南

2025年正规的分子筛空分制氮机厂家推荐及选择指南引言在工业气体应用领域,分子筛空分制氮机已成为电子、化工、食品、冶金等行业不可或缺的关键设备。随着2025年工业4.0的深入推进,市场对高效、智能、节能的制氮设备…

2025年比较好的KTV瓷砖最新TOP品牌厂家排行

2025年比较好的KTV瓷砖最新TOP品牌厂家排行 引言 KTV作为娱乐场所,对瓷砖的要求极高,不仅需要耐磨、防滑、易清洁,还要具备良好的装饰效果,能够营造出高端、时尚的氛围。2025年,随着瓷砖技术的不断进步,市场上…

CSP缺省源用什么?看看这篇文章就知道了!

#include<bits\stdc++.h> #define int __int128 #define N 1e5 using namespace std; namespace quesheng{ int size,cnt,sum,mod=10; int fread(int &x){double y;cin>>y;sum++;if(sum%mod==0)cerr&l…

【GitHub每日速递 251031】支持1110+语言、可语音克隆!这款电子书转有声书神器不容错过

原文:https://mp.weixin.qq.com/s/68H4suh6qyp_Z3DucDwyzA 支持1110+语言、可语音克隆!这款电子书转有声书神器不容错过 项目地址:https://github.com/DrewThomasson/ebook2audiobook 主要语言:Python stars: 13.3k…

2025年热门的拉力机厂家推荐及选购参考榜

2025年热门的拉力机厂家推荐及选购参考榜 在工业制造、科研检测、材料研发等领域,拉力试验机是评估材料力学性能的关键设备。随着制造业的升级和检测需求的增长,拉力机的市场需求持续扩大。2025年,如何选择一家可靠…

2025 年 10 月传感器厂家最新推荐,技术实力与市场口碑深度解析磁致伸缩位移/防爆位移/防水位移/隔爆位移/线性位移传感器厂家推荐

引言 当前传感器行业技术迭代加速,市场对产品性能与品牌可靠性的要求持续提升。为帮助企业及采购者精准识别优质厂家,2025 年 10 月,中国传感器与物联网产业联盟联合全国工业过程测量控制和自动化标准化技术委员会,…

2025年专业的多圈电位器最新TOP厂家排名

2025年专业的多圈电位器最新TOP厂家排名 在电子元件领域,多圈电位器因其高精度、稳定性和长寿命等特性,广泛应用于工业自动化、医疗设备、汽车电子、航空航天等行业。随着技术的不断进步,市场对多圈电位器的性能要…

2025年有实力的三相电力设备最新TOP厂家排名

2025年有实力的三相电力设备最新TOP厂家排名在当今电力行业快速发展的背景下,三相电力设备作为电力系统的核心组成部分,其质量与性能直接关系到整个电力系统的稳定运行。随着2025年的到来,市场上涌现出一批技术领先…

强化学习资料

强化学习入门这一篇就够了!!!万字长文

2025年靠谱的1000级净化工程厂家最新推荐排行榜:实力源头加工公司

2025年靠谱的1000级净化工程厂家最新推荐排行榜:实力源头加工公司 在现代化工业生产中,净化工程已成为电子半导体、医药医械、食品加工等行业不可或缺的基础设施。1000级净化工程对空气洁净度、温湿度控制、气流组织…

2025年口碑好的烟气电加热器厂家推荐及采购参考

2025年口碑好的烟气电加热器厂家推荐及采购参考行业概述烟气电加热器作为工业加热领域的重要设备,广泛应用于电力、化工、石油、冶金等行业。随着环保要求的不断提高和工业技术的持续进步,2025年烟气电加热器市场呈现…

PHP 中的命名艺术 实用指南

PHP 中的命名艺术 实用指南 命名是计算机科学中最难的两个问题之一(另外两个是缓存失效和差一错误),时常纠结于 $data 还是 $orderItems 这样的问题。PHP 也不例外。如果你可以掌握几个原则、模式和具体例子,命名就…

2025年热门的全自动高压隔膜压滤机厂家选购指南与推荐

2025年热门的全自动高压隔膜压滤机厂家选购指南与推荐 引言 随着工业自动化水平的不断提升,全自动高压隔膜压滤机在化工、环保、矿业、食品加工等领域的应用越来越广泛。2025年,市场对高效、节能、智能化的压滤设备…

2025年有实力冲压机械手行业内知名厂家排行榜

2025年有实力冲压机械手行业内知名厂家排行榜 随着工业自动化需求的爆发式增长,冲压机械手作为智能制造的核心设备之一,其技术实力与服务质量成为企业选择的关键。2025年,具备研发创新、规模化生产及全生命周期服务…

2025年知名的园林雕塑高评价厂家推荐榜

2025年知名的园林雕塑高评价厂家推荐榜园林雕塑作为公共艺术的重要组成部分,不仅美化城市环境,更能传递文化内涵和精神价值。随着城市化进程加快和人们审美需求提升,高品质的园林雕塑需求持续增长。本文将为您推荐2…

2025年最好的破碎机高评价厂家推荐榜

2025年最好的破碎机高评价厂家推荐榜 在矿山开采、建筑拆除、冶金化工等领域,破碎机作为核心设备之一,其性能与质量直接影响生产效率和运营成本。2025年,随着智能制造和绿色环保要求的提升,市场对破碎机的要求更加…