news 2026/5/29 5:17:50

《P3214 [HNOI2011] 卡农》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《P3214 [HNOI2011] 卡农》

题目描述

众所周知卡农是一种复调音乐的写作技法,小余在听卡农音乐时灵感大发,发明了一种新的音乐谱写规则。

他将声音分成 n 个音阶,并将音乐分成若干个片段。音乐的每个片段都是由 1 到 n 个音阶构成的和声,即从 n 个音阶中挑选若干个音阶同时演奏出来。

为了强调与卡农的不同,他规定任意两个片段所包含的音阶集合都不同。同时为了保持音乐的规律性,他还规定在一段音乐中每个音阶被奏响的次数为偶数。

现在的问题是:小余想知道包含 m 个片段的音乐一共有多少种。
两段音乐 a 和 b 同种当且仅当将 a 的片段重新排列后可以得到 b。例如:假设 a 为 {{1,2},{2,3}},b 为 {{2,3},{1,2}},那么 a 与 b 就是同种音乐。

答案对 108+7 取模。

输入格式

仅一行两个正整数 n,m

输出格式

输出一行一个整数表示答案。

输入输出样例

输入 #1复制

2 3

输出 #1复制

1

说明/提示

【数据范围】
对于 20% 的数据,1≤n,m≤5;
对于 50% 的数据,1≤n,m≤3000;
对于 100% 的数据,1≤n,m≤106。

【样例解释】
音乐为 {{1},{2},{1,2}}

代码实现:

#include<bits/stdc++.h> using namespace std; typedef long long ll; namespace FGF { int n, m; const int N = 1e6 + 5, mod = 1e8 + 7; int A[N], F[N]; int qp(int a, int b) { int res = 1; while(b) { if(b & 1) res = 1ll * res * a % mod; a = 1ll * a * a % mod; b >>= 1; } return res; } void wk() { scanf("%d%d", &n, &m); int tot = (qp(2, n) - 1 + mod) % mod; int fac = 1; A[0] = 1; for(int i = 1; i <= m; ++i) { A[i] = 1ll * A[i-1] * (tot - i + 1 + mod) % mod; fac = 1ll * fac * i % mod; } F[0] = 1, F[1] = 0; for(int i = 2; i <= m; ++i) { F[i] = ((A[i-1] - F[i-1] - 1ll * F[i-2] * (i-1) % mod * (tot - (i-2)) % mod) % mod + mod) % mod; } printf("%lld", 1ll * F[m] * qp(fac, mod - 2) % mod); } } int main() { FGF::wk(); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/27 23:16:04

5分钟精通:PowerPoint LaTeX公式排版完整指南

5分钟精通&#xff1a;PowerPoint LaTeX公式排版完整指南 【免费下载链接】latex-ppt Use LaTeX in PowerPoint 项目地址: https://gitcode.com/gh_mirrors/la/latex-ppt 还在为PowerPoint中数学公式排版效率低下而困扰吗&#xff1f;想要让学术报告、教学课件中的数学表…

作者头像 李华
网站建设 2026/5/28 11:54:10

OpenCore Legacy Patcher技术解析:突破苹果硬件限制的创新方案

在苹果生态系统中&#xff0c;硬件与软件的深度绑定往往意味着旧款设备的快速淘汰。然而&#xff0c;OpenCore Legacy Patcher的出现彻底改变了这一现状&#xff0c;为2007至2017年间发布的Intel架构Mac设备提供了运行最新macOS系统的可能性。这款开源工具通过创新的引导层技术…

作者头像 李华
网站建设 2026/5/20 13:27:53

如何快速下载Steam创意工坊模组:跨平台游戏的终极解决方案

如何快速下载Steam创意工坊模组&#xff1a;跨平台游戏的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否曾经在其他平台购买游戏后&#xff0c;发现无法享受…

作者头像 李华