news 2026/4/23 13:37:56

《P3223 [HNOI2012] 排队》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《P3223 [HNOI2012] 排队》

题目描述

某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检。他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不同的)

输入格式

只有一行且为用空格隔开的两个非负整数 n 和 m,其含义如上所述。

输出格式

仅一个非负整数,表示不同的排法个数。注意答案可能很大。

输入输出样例

输入 #1复制

1 1

输出 #1复制

12

说明/提示

对于 30% 的数据 n≤100,m≤100。

对于 100% 的数据 n≤2000,m≤2000。

代码实现:

#include<cstdio> #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #include<cstdlib> #include<cctype> #include<vector> #include<stack> #include<queue> #include<assert.h> using namespace std; #define enter puts("") #define space putchar(' ') #define Mem(a, x) memset(a, x, sizeof(a)) #define In inline typedef long long ll; typedef double db; const int INF = 0x3f3f3f3f; const db eps = 1e-8; const int maxn = 1e6 + 5; In ll rd() { ll res = 0; char c = getchar(), lst = ' '; while(!isdigit(c)) lst = c, c = getchar(); while(isdigit(c)) res = (res << 1) + (res << 3) + c - '0', c = getchar(); if(lst == '-') res = -res; return res; } In void wt(ll x) { if(x < 0) x = -x, putchar('-'); if(x >= 10) wt(x / 10); putchar(x % 10 + '0'); } In void FILE_IO() { #ifndef mrclr freopen("1.in", "r", stdin); freopen("ac.out", "w", stdout); #endif } int n, m; int num[maxn], l = 1; In void mul(int v) { l += 10; int d = 0; for(int i = 0; i < l; ++i) { num[i] = num[i] * v + d; d = num[i] / 10, num[i] %= 10; } while(l > 1 && !num[l - 1]) --l; } int main() { n = rd(), m = rd(); if(m > n + 3) {puts("0"); return 0;} num[0] = 1, l = 1; for(int i = 1; i <= n; ++i) mul(i); for(int i = n + 3 - m + 1; i <= n + 2; ++i) mul(i); mul(n + 1), mul(n * (n + 3) + 2 * m); for(int i = l - 1; i >= 0; --i) wt(num[i]); enter; return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 11:34:25

磁盘清理神器,告别电脑卡顿

在日常生活中&#xff0c;很多打工人在使用电脑的时候&#xff0c;经常会遇到磁盘变红没有空间的情况&#xff0c;但是又不知道怎么清理。 今天给大家推荐几款神器可以一键解决这样的问题&#xff0c;有需要的小伙伴可以 下载收藏一下。 SpaceSniffer 软件无需安装&#xff0…

作者头像 李华
网站建设 2026/4/23 12:55:59

为什么C++26的反射类型检查让顶级工程师如此兴奋?

第一章&#xff1a;C26反射类型检查的里程碑意义 C26标准在语言演进中迈出了关键一步&#xff0c;其中反射&#xff08;Reflection&#xff09;机制的增强尤为引人注目。特别是对类型检查能力的系统性支持&#xff0c;标志着C从“编译期元编程”向“第一类编译时反射”的正式过…

作者头像 李华
网站建设 2026/4/23 11:26:21

webSocket实时推送lora-scripts训练进度更新

WebSocket 实时推送 LoRA 脚本训练进度更新 在 AI 模型微调日益普及的今天&#xff0c;一个常见的痛点浮现出来&#xff1a;用户启动了训练任务后&#xff0c;只能盯着终端日志或等待邮件通知&#xff0c;却无法直观地看到“现在到底怎么样了”。尤其是使用 lora-scripts 这类自…

作者头像 李华
网站建设 2026/4/21 18:15:14

C++元编程中的隐式契约(你不知道的类型约束黑科技)

第一章&#xff1a;C元编程中的隐式契约&#xff08;你不知道的类型约束黑科技&#xff09;在C元编程中&#xff0c;模板并非只是泛型工具&#xff0c;它们背后隐藏着一套“隐式契约”——即对模板参数所应满足的操作和语义要求。这些契约虽不通过语法强制声明&#xff0c;却在…

作者头像 李华
网站建设 2026/4/23 12:12:31

编译期类型安全全解析,C++26反射带来的革命性变化

第一章&#xff1a;编译期类型安全全解析&#xff0c;C26反射带来的革命性变化C26标准即将引入原生反射机制&#xff0c;标志着编译期类型安全进入全新阶段。通过静态反射&#xff0c;开发者能够在不依赖宏或运行时类型信息&#xff08;RTTI&#xff09;的前提下&#xff0c;直…

作者头像 李华
网站建设 2026/4/23 10:43:40

git commit message规范示例:为lora-scripts项目贡献代码前必读

Git Commit Message 规范实践&#xff1a;为 lora-scripts 贡献代码的工程之道 在 AI 模型微调日益普及的今天&#xff0c;LoRA&#xff08;Low-Rank Adaptation&#xff09;因其高效、轻量的特性&#xff0c;成为大模型定制化训练的首选方案之一。而开源项目 lora-scripts 正…

作者头像 李华