【P2051】中国象棋 - Harvey

news/2025/9/17 21:00:27/文章来源:https://www.cnblogs.com/zhuhy0826/p/19097529

题意

求有多少种棋盘使得每一列和每一行的棋子个数不超过 \(2\) 个。

思路

设计 \(f_{i,j,k}\) 表示前 \(i\) 行,有 \(j\) 列为 \(1\) 个棋子,\(k\) 列为 \(0\) 个棋子。

  • 考虑当前行放 \(0\) 个棋子,则有 \(f_{i,j,k} = f_{i-1,j,k}\)
  • 若当前行放 \(1\) 个棋子,一种可能是放在 \(1\) 的列,另一种可能是放在 \(0\) 的列。
  • 若当前行放 \(2\) 个棋子,可以两个都放 \(0\),或者两个都放 \(1\),或者一个放 \(0\) 一个放 \(1\)

对应的情况要乘对应的排列系数,比较显然就不再赘述。

code

#include<bits/stdc++.h>
#define ll long longusing namespace std;const ll N = 105,mod = 9999973,inv = 4999987;int n,m;
ll dp[N][N][N];
void add(ll &x,ll y){(x+=y)%=mod;
}
int main() {cin>>n>>m;ll ans=0;dp[0][0][m]=1;for(int i=1;i<=n;i++){for(int j=0;j<=m;j++){for(int k=0;k<=m-j;k++){ll &res=dp[i][j][k];add(res,dp[i-1][j][k]);add(res,dp[i-1][j+1][k]*(j+1)%mod);if(j)add(res,dp[i-1][j-1][k+1]*(k+1)%mod);if(j>=2)add(res,dp[i-1][j-2][k+2]*(k+2)%mod*(k+1)%mod*inv%mod);add(res,dp[i-1][j+2][k]*(j+2)%mod*(j+1)%mod*inv%mod);
//				add(res,dp[i-1][j][k+1]*(k+1)%mod);add(res,dp[i-1][j][k+1]*(k+1)%mod*j%mod);if(i==n)ans=(ans+res)%mod;}}}cout<<ans;return 0;
}

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

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

相关文章

mysql 8.0查看正在执行的事务锁

SELECT * FROM performance_schema.data_lock_waits; -- MySQL 8.0+ SELECT r.trx_id AS waiting_trx_id, r.trx_mysql_thread_id AS waiting_thread, r.trx_query AS waiting_query, b.trx_id AS blocking_trx_id, b.…

JavaDay6

可变参数JDK1.5开始,Java支持传递同类型的可变参数给一个方法 在方法声明中,在指定参数类型后加一个省略号(...)。 一个方法只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。pa…

基于SpringBoot+Vue的大学生心理互助社区系统设计与建立

基于SpringBoot+Vue的大学生心理互助社区系统设计与建立2025-09-17 20:59 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; …

Ubuntu Linux 云服务器常见安全漏洞修复方法汇总 Apache/OpenSSH/DNS

安全漏洞名称/CVE修复方案1. Apache HTTP Server 缓冲区错误漏洞(CVE-2023-31122)2. Apache HTTP Server 资源管理错误漏洞(CVE-2023-43622)3. Apache httpd 资源管理错误漏洞(CVE-2024-27316)4. Apache HTTP Se…

JavaScript学习笔记(1)

JavaScript学习笔记(1)引用外部文件中的js文件:<script src="Path"></script> 和html文件相同,路径从index.html所在的根目录起。 输出window.alert() 弹出警告框,警告框的样式由浏览器决定…

多个 root 用户记录,而且有些记录的密码是空的,导致认证混乱。

多个 root 用户记录,而且有些记录的密码是空的,导致认证混乱。 留言:之前再讲mysql时候,经常有人可以远程登录的时候,结果发现没办法本地登录了,具体体现方式是这样的(看问题体现):现在我可以明确的告诉你们,是…

Min-Max 容斥小记

Min-Max 容斥小记 Min-Max 容斥 对于集合 \(S\),定义 \(\max(S)=\max_{x\in S} x\),同理可以定义 \(\min(S)\)。Min-Max 容斥给出了以下结论: \[\max(S)=\sum _{T\subseteq S} (-1)^{|T|-1}\min(T) \]对 \(\min\) 也…

【POJ1737】Connected Graph - Harvey

题意 求有标号联通无向图的个数。 思路 不妨设 \(f_{n}\) 表示有 \(n\) 个点时有标号联通无向图的个数。 考虑用总情况减去不连通情况。 总情况 总情况显然是 \(2^{\binom{n}{2}}\)(每两个点的边选或不选)。 不连通 …

详细介绍:VirtualBox 免费轻量的全能虚拟机,跨平台系统随心装

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

AI智能体开发实战:从提示工程转向上下文工程的完整指南

还记得去年各大公司给提示工程师开出30万美元年薪的疯狂时期吗?现在这些招聘信息基本销声匿迹了。从技术角度看,提示工程确实有些"投机取巧"的意味——本质上就是让人们相信自己在做"工程"工作的…

解码C语言九条语句

选择结构 if 一、基本语法 if (条件表达式) { // 条件为真时执行的代码块 } else { // 条件为假时执行的代码块(可选) }二、条件表达式的本质条件表达式可以是任何返回整型值的表达式:0 表示假(false)。 非0 表示…

django登录注册案例(上) - 详解

django登录注册案例(上) - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

实用指南:C++ 类型衰变(Type Decay)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

从C++开始的编程生活(10)——string类核心语法和auto自动推导类型

从C++开始的编程生活(10)——string类核心语法和auto自动推导类型pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &quo…

深入解析:Python的输出缓冲区机制

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

某交互题选讲的补题记录

CF750F New Year and Finding Roots 考虑第一步只能随机找点,找完点之后除非找到叶子或者根,不然完全等于啥都不知道。 于是找叶子节点,从这个点的两个邻边往下一直走一定能走到叶子,那么此时这条链的中点的父亲就…

openwrt ipv6 NAT6配置

在诸如校园网或者其他需要认证的网络条件下,由于实名制上网的要求,通常不支持DHCP6-PD,因此要使用IPV6需要使用NAT6目前最新版本的官方openwrt(23.05)已经自动支持NAT6了(firewall.xxx.masq6),因此,如果需要开启…

奶龙抽象语录

奶龙の无上恩情!!!开坑于 $ 2025-9-15 $ 最后更新于 $ 2025-9-17 $上课 班会 我们为什么要规范普通话,不就跟当年秦始皇车同文,书同轨一样吗? —— 25-9-16 其他 我们班五十几号人,我也不要求别的,声音比\(11\…

解题报告-P11670 [USACO25JAN] Cow Checkups S

P11670 [USACO25JAN] Cow Checkups S 题目描述 Farmer John 的 \(N\)(\(1 \leq N \leq 5 \cdot 10^5\))头奶牛站成一行,奶牛 \(1\) 在队伍的最前面,奶牛 \(N\) 在队伍的最后面。FJ 的奶牛也有许多不同的品种。他用从 \(1\) 到 \(N\) 的整数来表示每一品种。队伍从前到后第 …

word vba 对 带编号格式的PO单 段落下添加对应的图片

Attribute VB_Name = "APO_PathStaging" Option Explicit Configuration Constants Private Const BASE_FOLDER As String = "\\10.0.0.10\部门共享\PO\" Private Const START_PARA As Long = 582 Private Const PATH_TAG As String = "[IMG] " …