bzoj 1801 [Ahoi2009]chess 中国象棋

ROS下UR+Realsense相机进行手眼标定 手眼标定主要是用来确定相机坐标系和机械臂坐标系之间的转换关系,从而实现后续的抓取等任务。 阅读详情

Description
在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧.

Input
一行包含两个整数N,M,中间用空格分开.

Output
输出所有的方案数,由于值比较大,输出其mod 9999973

Sample Input
1 3
Sample Output
7

HINT
除了在3个格子中都放满炮的的情况外,其它的都可以.
100%的数据中N,M不超过100
50%的数据中,N,M至少有一个数不超过8
30%的数据中,N,M均不超过6

Solution

这道dp困扰我已久,但还是想不出来,无奈之下,只能看题解了。
f[i][j][k]表示到第i行,有j列放了一个,有k列放了二个。
如何计数可以自己推敲一下

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#define ll long long
using namespace std;
const int mod=9999973;
int n,m,ans;
ll f[105][105][105];
int main()
{
    cin>>n>>m;
    f[1][0][0]=1;
    f[1][1][0]=m;
    f[1][2][0]=m*(m-1)/2;
    for(int i=2;i<=n;i++) 
    for(int j=0;j<=m;j++) 
    for(int k=0;k<=m;k++) 
    if(j+k<=m) 
    {
        f[i][j][k]=f[i-1][j][k];//不放 
        if(j-1>=0) f[i][j][k]=(f[i][j][k]+f[i-1][j-1][k]*(m-j-k+1))%mod;
        if(k-1>=0) f[i][j][k]=(f[i][j][k]+f[i-1][j+1][k-1]*(j+1))%mod;
        if(k-1>=0) f[i][j][k]=(f[i][j][k]+f[i-1][j][k-1]*j*(m-j-k+1))%mod;
        if(k-2>=0) f[i][j][k]=(f[i][j][k]+f[i-1][j+2][k-2]*(j+2)*(j+1)/2)%mod; 
        if(j-2>=0) f[i][j][k]=(f[i][j][k]+f[i-1][j-2][k]*(m-j-k+2)*(m-j-k+1)/2)%mod;
    }
    for(int i=0;i<=m;i++) 
    for(int j=0;j<=m;j++) 
    if(i+j<=m) ans=(ans+f[n][i][j])%mod;
    cout<<ans;
    return 0;
}
ROBOGUIDE教程:FANUC机器人X型焊枪气动点焊焊接 FANUC机器人X型焊枪气动点焊焊接虚拟仿真实现方法。 阅读详情

相关推荐

火山引擎实时对话AI实战:5分钟搞定WebRTC+大模型+ASR/TTS全链路集成

本文详细介绍了如何利用火山引擎的实时对话AI解决方案,快速集成WebRTC、大模型、ASR和TTS服务,构建低延迟、高保真的实时语音对话应用。通过实战代码示例,从环境准备、音频流管理到全链路串联与性能优化,为开发者提供了一套端到端的集成指南,适用于智能客服、在线教育等互动场景。

weixin_29051245的博客 1129

BZOJ_1801_[Ahoi2009]chess 中国象棋_DP

BZOJ_1801_[Ahoi2009]chess 中国象棋_DP Description 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧. Input 一行包含两个整数N,M,中间用空格分开. Output 输出所有的方案数,由于值比较大,输出其mod 9999973 Sampl...

114

ss524v100 调试cvbs输出

启用视频层3 dev2 对应 layer3在vdec与vo绑定的时候(不需要经过vpss),不能绑定错误,以下是绑定的程序。

2116

BZOJ1801 Ahoi2009 chess 中国象棋

1801: [Ahoi2009]chess 中国象棋 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 1911  Solved: 1105 [Submit][Status][Discuss] Description 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方

PrimoPan的博客 393

酒店前台pms管理系统

对于酒店经营者来说,选择一款优秀的管理系统,是提升运营效率、优化客人体验的关键。PMS酒店管理系统凭借其强大的房态管理、实时数据监控、OTA直联、无人值守等功能,已经成为许多酒店提升管理水平的得力助手。无论是大中型酒店,还是小型民宿,PMS系统都能根据不同需求提供量身定制的解决方案,帮助酒店实现精细化管理、提高运营效率。如果你也在为酒店管理中的繁琐琐事而困扰,不妨尝试一下PMS酒店管理系统,感受科技带来的便利与高效,让你的酒店运营更上一层楼!

2409_89897808的博客 2485

《AgentScope-Java 深入浅出教程》第3章 消息系统(Message)

在 AgentScope 中,消息(Msg)是最核心的数据结构。│ 消息的作用 ││ ││ │ 用户输入 │ ────────────┐ ││ ▼ ││ │智能体通信│ ◄────► │ 消息对象 │ ◄────► │ LLM API │ ││ ▲ ││ │ ││ │ 历史存储 │ ────────────┘ ││ │用户输入:封装用户的问题和指令智能体输出:封装智能体的回复和工具调用智能体通信:在多智能体系统中传递信息LLM API 交互:转换为 LLM 可理解的格式历史存储。

步子哥的博客 229

BZOJ1801: [Ahoi2009]chess 中国象棋

Portal1801: [Ahoi2009]chess 中国象棋Time Limit: 10 Sec  Memory Limit: 64 MBDescription在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧.Input一行包含两个整数N,M,中间用空格分开. Output输出所有的方案数,由于值比较

Heret1c 542

Qt5.15.2配置安卓环境

否则,将会跳转到github,你可以自行下载解压到你设置的目录中,然后Qt会自动检测到。以上所需的工具确实有些繁多,而且如果单独下载又涉及科学上网问题,版本问题十分麻烦,好在Qt Creator 4.12之后已经可以自动下载SDK工具,NDK,基础包,openssl,以及gradle等,十分省心。回到正题,无论通过在线安装的方式,安装时勾选了Android,还是编译的方式,编译时编译了Qt Android库,想要使用Qt开发安卓应用仍然需要一些其他工作,包括安装编译安卓项目需要的SDK,NDK等。

weixin_41392061的博客 979

bzoj1801【AHOI2009】chess 中国象棋

很不错的DP题

AaronPolaris 1927

链路状态路由协议 OSPF (一)

本章将会学习链路状态路由协议OSPF,理解OSPF的基本概念,工作原理,掌握OSPF配置基本命令。本章重点,OSPF的基本概念,OSPF配置。

yj11290301的博客 3475

Isaac Lab 强化学习全身控制策略 Sim2Real 宇树人形机器人训练部署 HOVER

《IsaacLab策略训练与部署指南》提供了在仿真和真实机器人上实现HOVER全身控制策略的完整流程。主要内容包括:1) Linux环境下的IsaacLab安装与HOVER资源库配置;2) 使用1024个并行环境训练教师/学生策略的详细步骤;3) 策略测试与评估方法;4) Sim2Sim仿真验证和Sim2Real真实机器人部署方案。本教程特别针对Unitree H1仿人机器人,包含运动数据准备、策略训练、性能评估到硬件部署的全链条实现方案,为机器人控制策略开发提供标准化参考框架。

机器人控制与仿真应用 3070

BZOJ1801 [Ahoi2009]chess 中国象棋 [动态规划]

中国象棋中国象棋中国象棋 题目描述见链接 . 最初想法\color{grey}{最初想法}最初想法 可以发现每行每列最多只能够放 222 个棋子 . 设 F[i,j,a,b]F[i, j, a, b]F[i,j,a,b] 表示前 iii 行,前 jjj 列,第 iii 行放置了 aaa 个棋子, 第 jjj 列放置 bbb 个棋子的方案数, 发现不可行. 正解部分\color{red}{正解...

Zbr162的博客 226

基于Simulink的永磁同步电机三闭环(位置/速度/电流)伺服仿真

本文详细介绍了基于Simulink的永磁同步电机三闭环伺服控制系统的设计与实现,针对机器人关节控制场景。系统采用位置环(外环)、速度环(中环)和电流环(内环)的嵌套结构,通过精确的带宽匹配(电流环1kHz、速度环200Hz、位置环20Hz)实现亚微米级位置跟踪。文中提供了完整的Simulink建模步骤,包括主电路搭建、三环PI控制器实现及坐标变换模块,并验证了系统性能:阶跃响应时间35ms,位置误差<0.05°,正弦跟踪误差<0.15°,负载突加恢复时间0.08s。最后提出了参数自适应整定、前馈

amy_mhd的博客 279

bzoj1801: [Ahoi2009]chess 中国象棋 [dp]

Description 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧. Input 一行包含两个整数N,M,中间用空格分开. Output 输出所有的方案数,由于值比较大,输出其mod 9999973 Sample Input 1 3 Sample Output 7 ...

dirushi6322的博客 155

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

bzoj1801[Ahoi2009]chess 中国象棋 dp

题目描述 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧. 输入格式 一行包含两个整数N,M,中间用空格分开. 输出格式 输出所有的方案数,由于值比较大,输出其mod 9999973 题解 据说三进制只有50分?(其实是我不会三进制)感觉这题就跟状压没关系了,直接dp就可以了。 \(f[i][j...

anrangyu3600的博客 198

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

bzoj 1801: [Ahoi2009]chess 中国象棋

Description 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧. Input 一行包含两个整数N,M,中间用空格分开. Output 输出所有的方案数,由于值比较大,输出其mod 9999973 Sample Input 1 3 Sample Output 7 HINT ...

Top_xiao的博客 216

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【bzoj1801】【AHOI2009】【chess中国象棋】【组合数学】

Description 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧. Input 一行包含两个整数N,M,中间用空格分开. Output 输出所有的方案数,由于值比较大,输出其mod 9999973 Sample Input 1 3 Sample Output

sunshinezff的专栏 1461

bzoj1801 [Ahoi2009]chess 中国象棋

【bzoj1801】[Ahoi2009]chess 中国象棋 2014年6月7日1,2581 Description 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧. Input 一行包含两个整数N,M,中间用空格分开. Output 输出所有的方案数,由于值比较大,输出其mod 999...

weixin_30408165的博客 114

[BZOJ1801][Ahoi2009]chess 中国象棋

第一反应状压DP,然而N≤100… 解决问题的关键在于(摘自某题解的一段话): 其实我们不用管到底哪些列有一个有两个炮,只用看到现在有几列是一个炮,有几列没有炮、两个炮 有了这个想法以后,DP方程就不难写出了【不难个鬼…细节超多OLZ】.

Zvezda_的博客 647

BZOJ 1801 AHOI2009 Chess 中国象棋

1801: Ahoi2009 chess 中国象棋Description 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧. Input 一行包含两个整数N,M,中间用空格分开. Output 输出所有的方案数,由于值比较大,输出其mod 9999973 Sample Input 1 3 Sa

苦鬼·。 422

[luogu2051][bzoj1801][AHOI2009]chess中国象棋【动态规划】

题目描述 这次小可可想解决的难题和中国象棋有关,在一个N行M列的棋盘上,让你放若干个炮(可以是0个),使得没有一个炮可以攻击到另一个炮,请问有多少种放置方法。大家肯定很清楚,在中国象棋中炮的行走方式是:一个炮攻击到另一个炮,当且仅当它们在同一行或同一列中,且它们之间恰好 有一个棋子。你也来和小可可一起锻炼一下思维吧! 题目大意 在一个n*m的棋盘中,求任意行和任意列上最多有2个棋子的方案...

weixin_38166931的博客 263

【bzoj 1801】: [Ahoi2009]chess 中国象棋

1801: [Ahoi2009]chess 中国象棋 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 785  Solved: 448 [Submit][Status] Description 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧.

willinglive 698

BZOJ1801 Ahoi2009 chess 中国象棋 【DP+组合计数】*

BZOJ1801 Ahoi2009 chess 中国象棋 Description 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧. Input 一行包含两个整数N,M,中间用空格分开. Output 输出所有的方案数,由于值比较大,输出其mod 9999973 Sample Input 1 3 Samp...

Dream_maker的博客 386
上一篇: bzoj 1296 [SCOI2009]粉刷匠
下一篇: 一周
ACTY
博客等级 码龄12年 21粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值