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

《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; }
http://www.jsqmd.com/news/195289/

相关文章:

  • Fast-GitHub终极解决方案:彻底告别GitHub访问卡顿
  • LTSC-Add-MicrosoftStore:Windows 11 24H2 LTSC微软商店一键恢复完整解决方案
  • OpenCore Legacy Patcher实战指南:让老Mac焕发新生的四步决策法
  • Windows HEIC图片预览终极解决方案:让苹果照片在Windows中清晰可见
  • 深度学习计算机毕设之基于机器算法的美国研究生院入学录取率预测系统实现
  • ModOrganizer2终极连接指南:3步解决Nexus账户绑定失败问题
  • OpenCore图形化配置工具:从零基础到专业配置的完整指南
  • TikTok评论采集神器:零基础也能批量抓取评论数据
  • 炉石传说自动化工具5分钟快速上手指南
  • OpenCore Configurator完整指南:图形化配置黑苹果引导的终极解决方案
  • 3分钟掌握Windows与iOS设备跨设备传输:文件共享与剪贴板同步全攻略
  • OpenCore Configurator:告别命令行,轻松配置专业级黑苹果引导
  • 3分钟掌握html-docx-js:前端HTML转Word文档的终极指南
  • 深度学习毕设选题推荐:基于机器学习深度学习的垃圾分类识别系统
  • Scan2CAD终极指南:用AI实现扫描图像到CAD模型的智能转化
  • 跨设备文件传输新方案:Windows与iOS设备无缝同步实战指南
  • 4步高效升级:OpenCore Legacy Patcher让旧Mac设备焕发新生
  • Switch大气层系统完全使用手册:解锁游戏设备的无限潜能
  • PlayCover深度解析:在Apple Silicon Mac上完美运行iOS应用
  • Windows苹果设备驱动终极解决方案:告别连接困扰的智能工具
  • 智能办公革命:Pulover‘s Macro Creator零基础自动化实战指南
  • ImageGlass:如何在Windows上快速打造专业级图片浏览体验
  • SD-PPP:重新定义Photoshop中的AI创作工作流
  • LTSC-Add-MicrosoftStore:Windows 11 LTSC微软商店一键恢复革命性方案
  • WinBtrfs完整指南:在Windows上体验Btrfs文件系统的强大功能
  • Windows Defender完全清理指南:5步终极解决方案
  • R3nzSkin游戏换肤工具安全使用完全指南
  • Windows HEIC缩略图终极解决方案:一键开启苹果照片预览
  • RAG知识库远远没有你想象中的那么简单!
  • HMCL启动器Linux权限终极配置指南:告别sudo烦恼