题目描述

有下面这样的一个网格棋盘,a,b,c,d表示了对应边长度,也就是对应格子数。

当a=b=c=d=2时,对应下面这样一个棋盘

要在这个棋盘上放K个相互不攻击的车,也就是这K个车没有两个车在同一行,也没有两个车在同一列,问有多少种方案。同样只需要输出答案mod 100003后的结果。

输入输出格式

输入格式:

输入文件place.in的第1行为有5个非负整数a, b, c, d和k。

输出格式:

输出文件place.out包括1个正整数,为答案mod 100003后的结果。

输入输出样例

输入样例#1: 复制

2 2 2 2 2

输出样例#1: 复制

38

说明

【数据规模与约定】

对于部分数据,有b = 0;

对于部分数据,有a,b,c,d≤4。

对于100%的数据,a,b,c,d,k≤1000,且保证了至少有一种可行方案。


把棋盘拆成两半

我们在上面\(a\times b\)的矩阵放了\(m\)个车,那么就要在下面\((a+c-m)\times d\)的矩阵放\(k-m\)个车
分别用排列组合解决就是\[\sum _{m=0}^kC_a^m\times C_b^m\times A_m^m\times C_{a+c-m}^{k-m}\times C_d^{k-m}\times A_{k-m}^{k-m}\]


#include<iostream>
#include<cstdio>
#define M 100003
#define LL long long
using namespace std;LL n,a,b,c,d,k,f[10001],s[10001],ans;
LL A[10001],B[10001],inv[100001];
int main()
{scanf("%lld%lld%lld%lld%lld",&a,&b,&c,&d,&k);inv[1]=A[0]=A[1]=B[1]=B[0]=1;for(int i=2;i<=k+a+b+c+d;i++){inv[i]=(M-M/i)*inv[M%i]%M;B[i]=inv[i]*B[i-1]%M;A[i]=A[i-1]*i%M;} for(int i=0;i<=min(a,min(b,k));i++) f[i]=A[a]*B[i]%M*B[a-i]%M*A[b]%M*B[i]%M*B[b-i]%M*A[i]%M;for(int i=0;i<=min(a+c,min(d,k));i++) s[i]=A[a+c-k+i]*B[i]%M*B[a+c-k]%M*A[d]%M*B[i]%M*B[d-i]%M*A[i]%M;for(int i=0;i<=k;i++) ans=(ans+f[i]*s[k-i]%M)%M;printf("%lld",ans);
}

转载于:https://www.cnblogs.com/ZUTTER/p/9881500.html

P1350 车的放置相关推荐

  1. AcWing 1309. 车的放置 (加法原理、乘法原理、组合数排列数的求法、乘法逆元)

    1309. 车的放置 分步做:先放上面的矩形,后考虑下面的矩形. 分类做:依次求出,上面放置 0 . 1 . 2 . - - . k 0.1.2.--.k 0.1.2.--.k个车的,而下面放置 k ...

  2. 组合计数——车的放置(逆元)+数三角形+序列统计(lucas定理)

    通用传送门:https://www.acwing.com/activity/content/16/ 思路:设C(a,b)为从a中取出b个的组合数,设A(a,b)从a中选出b个进行排列的排列数. 对于题 ...

  3. 试题 算法训练 车的放置(蓝桥杯c++)

    问题描述 在一个n*n的棋盘中,每个格子中至多放置一个车,且要保证任何两个车都不能相互攻击,有多少中放法(车与车之间是没有差别的) 输入格式 包含一个正整数n 输出格式 一个整数,表示放置车的方法数 ...

  4. 正睿OI补题(递归与递推,前缀和与差分)

    目录: P1255 数楼梯 P4552 [Poetize6] IncDec Sequence P2280 [HNOI2003]激光炸弹 P1350 车的放置 P1255 数楼梯 数楼梯 - 洛谷 递推 ...

  5. 海上瓶子下有东西吗_放置在车内的饮用水,经过暴晒后,还能喝吗?有异味,是毒素吗?...

    随着大家经济的不断变好,家家户户都买了小汽车.汽车已经成为了我们外出旅行的必备工具.我们会经常开车去外地进行郊游,开车去出差,去哪里买东西等等. 我们在车上,是会放置一些饮品的.到了夏天,天气炎热,放 ...

  6. 智能车竞赛技术报告 | 双车接力组 - 东北大学 - 三好学生

    简 介: 本文主要介绍了第十六届智能车竞赛双车的相关设计思想.此直立车与三轮车系统均由MM32F3277G9P微控制器为核心控制单元,通过电感电容传感器检测赛道下方导线以识别赛道,通过ICM-2060 ...

  7. 2018年第一场省赛:黑龙江省智能车邀请赛

    比赛时间:2018年5月1日 8:30-18:00比赛地点:哈尔滨工业大学体育馆 比赛组别:光电四轮组.双车会车组.电磁平衡组. 无线节能组.电磁三轮组.信标对抗组参赛学校:哈尔滨工业大学.哈尔滨工业 ...

  8. 苹果加入造车潮,自动驾驶离我们还远吗?

    近日,有消息称苹果可能提前两年推出电动车产品,预计时间将是2021年的第三季度,也就是大概9个月之后.消息热度居高不下,引发了广泛的关注和讨论. 早在2013年的开发者大会(WWDC)上,苹果就正式推 ...

  9. 毕业设计 STM32平衡车设计与实现

    文章目录 1 简介 1 课题描述 2 课题设计内容 3 平衡车控制原理 4 关键算法 4.1 PID控制算法 4.2 卡尔曼滤波 5 硬件设计 5.1 stm32部分 5.2 电机驱动电路设计 5.3 ...

最新文章

  1. SAD和SATD的区别[摘]
  2. Web前端工程师应该懂的的知识点——HTML/CSS
  3. Matlab emd工具箱、时频分析工具箱下载以及安装方法
  4. ansible(6)——模块命令command、shell详细用法
  5. 北京80后整体亮相《北京作家》
  6. 基于混合云存储系统的电影推荐引擎小结
  7. mybatis-plus对datetime返回去掉.0_0欧姆电阻到底有没有用?这12个作用说明其不可或缺...
  8. 涂抹oracle源代码,涂抹Oracle:三思笔记之一步一步学ORACLE
  9. Mysql 存储过程和函数区别
  10. 如何查询linux服务器的网卡,linux怎么查看网卡硬件信息
  11. Python代码画哆啦A梦战斗猫--Turtle画图
  12. Python批量爬取堆糖图片
  13. 微信公众号怎么发红包?
  14. 关于大数据相关的问答汇总,每天持续更新中哦~
  15. 化龙小型汽车考场手动挡C1科目二考试技巧(全网唯一最详细教程)
  16. 这个macOS神器,让爱怀旧的人直呼:“爷青回!”
  17. python 录屏_python实现录制全屏和选择区域录屏功能代码
  18. Python 图像处理OpenCV:直方图均衡化(笔记)
  19. [小代码]通过IP和端口连接到远程摄像机
  20. Vmware为虚拟机添加硬盘操作详解

热门文章

  1. gradle 构建测试
  2. Apache2.4项目配置PHP/TP项目方法
  3. Windows Server 2016存储空间直连技术的探秘
  4. 使用wordpress分页函数paginate_links
  5. golang读取文件编码转换问题
  6. 关于超过255台电脑的内网IP规划问题
  7. WebbUpload的验证问题
  8. VUE2中axios的使用方法
  9. first-class type 一等类型的含义
  10. [Python] L1-023. 输出GPLT-PAT团体程序设计天梯赛GPLT