《P3200 [HNOI2009] 有趣的数列》

题目描述

我们称一个长度为 2n 的数列是有趣的,当且仅当该数列满足以下三个条件:

  • 它是从 1∼2n 共 2n 个整数的一个排列 {an​}n=12n​;

  • 所有的奇数项满足 a1​<a3​<⋯<a2n−1​,所有的偶数项满足 a2​<a4​<⋯<a2n​;

  • 任意相邻的两项 a2i−1​ 与 a2i​ 满足:a2i−1​<a2i​。

对于给定的 n,请求出有多少个不同的长度为 2n 的有趣的数列。
因为最后的答案可能很大,所以只要求输出答案对 p 取模。

输入格式

一行两个正整数 n,p。

输出格式

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

输入输出样例

输入 #1复制

3 10

输出 #1复制

5

说明/提示

【数据范围】
对于 50% 的数据,1≤n≤1000;
对于 100% 的数据,1≤n≤106,1≤p≤109。

【样例解释】
对应的 5 个有趣的数列分别为(1,2,3,4,5,6),(1,2,3,5,4,6),(1,3,2,4,5,6),(1,3,2,5,4,6),(1,4,2,5,3,6)。

代码实现:

#include <cstdio> using namespace std; const int N = 2e6 + 5; int v[N], pr[N], c = 0; // 补充快速读入函数 inline int read() { int x = 0; char c = getchar(); while (c < '0' || c > '9') c = getchar(); while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar(); return x; } // 补充快速输出函数 inline void writeln(int x) { if (x == 0) { putchar('0'); putchar('\n'); return; } char s[10]; int len = 0; while (x) s[len++] = x % 10 + '0', x /= 10; for (int i = len - 1; i >= 0; i--) putchar(s[i]); putchar('\n'); } inline void sieve(int n) { v[1] = 0; for (int i = 2; i <= n; i++) { if (!v[i]) pr[++c] = i, v[i] = i; for (int j = 1; j <= c && pr[j] * i <= n; j++) { v[pr[j] * i] = pr[j]; if (i % pr[j] == 0) break; } } } inline int qp(int a, int b, int mod) { int res = 1; for (; b; b >>= 1, a = 1ll * a * a % mod) if (b & 1) res = 1ll * res * a % mod; return res; } inline int cnt_p(int n, int p) { int res = 0; while (n) { res += n / p; n /= p; } return res; } int n, r[N], p, ans = 1; signed main(void) { n = read(), p = read(); sieve(2 * n); for (int i = 1; i <= c; i++) r[i] = cnt_p(2 * n, pr[i]) - cnt_p(n, pr[i]) - cnt_p(n + 1, pr[i]); for (int i = 1; i <= c; i++) ans = 1ll * ans * qp(pr[i], r[i], p) % p; writeln(ans); return 0; }

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

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

相关文章

Belkin发布全新屏幕保护产品系列并推出“日常磨损更换计划”,全面提升设备日常防护水平

• Belkin发布七款全新屏幕保护膜&#xff0c;搭载专有Nano-Titan™技术&#xff0c;显著增强对日常跌落与刮擦的防护能力 • 全新“日常磨损更换计划”让消费者在产品更换方面更加安心无忧 • 消费者现可通过Screen Skinz实现屏幕保护膜的个性化定制 作为一家深耕消费电子领域…

接口自动化测试知识总结

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快1. 什么是接口测试顾名思义&#xff0c;接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以…

三分钟带你看懂AI大模型(图文教程)

不废话&#xff0c;直接上干货—— 什么是模型&#xff1f; 通俗地讲&#xff0c;模型是一个基于神经网络构建好的处理器&#xff0c;比如函数yF(x)&#xff0c;它能够根据输入x&#xff0c;产生相应的预测y或者输出内容y。什么是训练&#xff1f; 通过输入数据并监督输出结果来…

《CF1278F Cards》

题目描述 考虑如下实验。有一副共 m 张牌的牌堆&#xff0c;且恰好有一张是小丑牌。你将进行 n 次如下操作&#xff1a;将牌堆洗牌&#xff0c;从牌堆顶端抽出一张牌&#xff0c;查看后再放回牌堆。 设 x 表示在本次实验中你抽到小丑牌的次数。假设每次洗牌后&#xff0c;所有…

积木报表重磅更新:移动报表功能全面支持,跨设备无缝对接

在移动互联网时代&#xff0c;移动办公已成为企业数字化转型的重要趋势。然而&#xff0c;传统的报表系统往往只能在 PC 端使用&#xff0c;外出办公、现场数据采集、移动审批等场景下&#xff0c;数据查看和填报受到极大限制。如何打破设备限制&#xff0c;让报表随时随地可访…

【2026年最新网络安全就业方向】网络安全专业的学生毕业后可以从事什么样的工作?

岗位一&#xff1a;渗透测试。 模拟黑客攻击&#xff0c;利用黑客技术&#xff0c;挖掘漏洞&#xff0c;提出修复建议。有些的大厂&#xff0c;例如奇安信&#xff0c;会把渗透岗位分为红蓝两方&#xff0c;对候选人的技术要求比较高&#xff0c;大部分刚入行的新人&#xff0…

普源数字万用表示值不准/开机异常的7种解决方法

普源数字万用表作为电子测量中的常用工具&#xff0c;若出现示值不准或开机异常&#xff0c;会影响测量精度和效率。本文总结了7种常见问题的解决方法&#xff0c;帮助用户快速排查故障&#xff0c;恢复仪器正常功能。检查电池电量与接触 问题&#xff1a;电池电量不足或接触不…

自动化测试基础知识总结

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快自动化测试是指利用自动化工具和脚本&#xff0c;模拟人工操作进行软件测试的过程。它在软件开发中扮演着非常重要的角色&#xff0c;可以提高测试效率、降低成本、…

区块链 Web3 项目开发

区块链 Web3 项目的开发在 2026 年已经进入了“生产力时代”。与早期追求炒作不同&#xff0c;现在的开发更强调实用性&#xff08;Utility-First&#xff09;、合规性以及与 AI 智能体&#xff08;AI Agent&#xff09;的深度融合。以下是区块链 Web3 项目开发的标准流程与核心…

AbMole丨VcMMAE:从CD20到HER2,赋能多靶点ADC开发的通用平台

VcMMAE&#xff08;MC-VC-PAB-MMAE&#xff0c;AbMole&#xff0c;M9216&#xff09;是抗体偶联物&#xff08;ADC&#xff09;研究中的关键组件&#xff0c;由微管抑制剂MMAE&#xff08;单甲基奥瑞他汀E&#xff0c;Monomethyl auristatin E&#xff0c;AbMole&#xff0c;M3…

Launch Template 和 ALB、Target Group、Auto Scaling Group 是什么关系?

一、Launch Template 的作用是什么&#xff1f; 一句话定义&#xff08;面试版&#xff09; Launch Template 是 EC2 实例的标准化启动配置&#xff0c;用来告诉 Auto Scaling“新实例该如何创建和配置”。 Launch Template 具体解决什么问题&#xff1f; Auto Scaling 不会“复…

软件测试之bug分析定位技巧

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快1、web前端Web前端就是通常说的网页。互联网公司的前端一般包含如下内容&#xff1a;JavaScript、ActionScript、CSS、HTML(..ML)、Flash、交互式设计、视觉设计web…

普源数字万用表DM3068与是德科技34461A对比分析

在现代电子测量领域&#xff0c;数字万用表作为基础且关键的测试仪器&#xff0c;广泛应用于研发、生产、维修等多个环节。普源精电&#xff08;RIGOL&#xff09;的DM3068与是德科技&#xff08;Keysight&#xff09;的34461A是两款在中高端市场中颇具代表性的6位数字万用表&a…

基于单片机控制的音乐盒

第2章 系统硬件设计 2.1单片机内部结构 STC89C52 是一种耗能低、性能高CMOS8位微控制器&#xff0c;它基本都是51内核的种类&#xff0c;是新一代增强型单片机&#xff0c;具有8K在系统可编程Flash存储器&#xff0c;加密性好&#xff0c;抗干扰强。STC89C52具有的可编程的Flas…

计算机网络入门必知:从信号到速率,一张图讲清通信基础!

计算机网络入门必知&#xff1a;从信号到速率&#xff0c;一张图讲清通信基础&#xff01;在学习计算机网络时&#xff0c;很多同学会被“码元”“波特率”“比特率”这些术语绕晕。其实&#xff0c;只要理解了底层的通信原理&#xff0c;这些概念就会变得清晰又有趣。今天我们…

解读|生产级RAG系统落地的10个经验教训

本文为大家解读Contextual AI 联合创始人兼CEO&#xff0c;也是著名的RAG技术先驱&#xff0c;Douwe Kiela 分享的他在企业级 RAG 系统实施与落地中的十大经验教训 。 解读纯属个人观点&#xff0c;欢迎探讨。 本次分享主要针对企业AI系统转化为商业价值的关键难题&#xff1a;…

一文带你了解最吃香的金融类软件测试(附面试文档)

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、为什么做金融类软件测试举个栗子&#xff0c;银行里的软件测试工程师。横向跟互联网公司里的测试来说&#xff0c;薪资相对稳定&#xff0c;加班少甚至基本没…

Amazon CloudWatch 的系统化汇总版

一、CloudWatch 是什么&#xff08;一句话版&#xff09; Amazon CloudWatch 是 AWS 的集中式监控服务&#xff0c;用来收集、存储、可视化和告警 AWS 资源的指标和日志。 核心关键词&#xff1a; 集中式&#xff08;centralized&#xff09; / 托管&#xff08;managed&#x…

TH2851阻抗分析仪:材料测试的“一站式”技术利器

在材料研发与性能验证的全流程中&#xff0c;精准、高效的参数表征是关键环节。同惠电子TH2851阻抗分析仪凭借灵活的硬件适配与专业软件支持&#xff0c;成为覆盖多类材料的“一站式”测试方案核心&#xff0c;其在高校、军工、新材料领域的落地案例&#xff0c;正展现出强大的…

2026最新软件测试面试热点问题(含答案+文档)

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 大厂面试热点问题1、测试人员需要何时参加需求分析&#xff1f;如果条件循序 原则上来说 是越早介入需求分析越好 因为测试人员对需求理解越深刻 对测试工作的…