news 2026/11/3 23:07:56

《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/11/3 8:37:25

思源宋体中文版:7种字重完整使用教程

思源宋体中文版&#xff1a;7种字重完整使用教程 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 思源宋体中文版是一款功能强大的开源中文字体&#xff0c;专为高质量中文排版设计。无…

作者头像 李华
网站建设 2026/11/3 0:08:44

R3nzSkin游戏换肤工具安全清理全解析

R3nzSkin游戏换肤工具安全清理全解析 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL).Everyone is welcome to help improve it. 项目地址: https://gitcode.com/gh_mirrors/r3n/R3nzSkin &#x1f3ae; 作为一款专业的游戏换肤工具&#xff0c;R3…

作者头像 李华
网站建设 2026/11/3 8:39:25

掌握PlayCover:在M芯片Mac上运行iOS应用的终极指南

掌握PlayCover&#xff1a;在M芯片Mac上运行iOS应用的终极指南 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover 还在为无法在Mac上畅玩手机游戏而困扰吗&#xff1f;PlayCover这款专为Apple Silicon设计…

作者头像 李华
网站建设 2026/11/3 4:31:54

ssm 个性化推荐系统之商城购物网站的电商系统设计vue

目录SSM 个性化推荐系统与电商系统设计&#xff08;Vue&#xff09;摘要开发技术核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系…

作者头像 李华
网站建设 2026/11/3 8:39:25

基于java社区垃圾分类系统vue

目录社区垃圾分类系统&#xff08;JavaVue&#xff09;摘要开发技术核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xf…

作者头像 李华