
【2020.12.03提高组模拟】袋鼠
发布日期:2021-05-06 15:40:56
浏览次数:18
分类:精选文章
本文共 1294 字,大约阅读时间需要 4 分钟。
题目
题目描述
你知道吗?乌拉圭的人口有345.7万,同时,仅澳大利亚就有4700万只袋鼠。
袋鼠决定入侵乌拉圭。袋鼠们将在平原上布阵,平原被划分成 n × m n \times m n×m 的网格。
每个格子里至多有一只袋鼠。
为了抵御袋鼠的入侵,你需要预测敌人的阵型。具体地,你需要计算袋鼠阵
型的数目,满足平原网格中每行、每列的袋鼠数目之和均为 K K K.
如果袋鼠入侵了乌拉圭,那么每一个乌拉圭人都要打 14 只袋鼠。你不知道,
你不在乎,你只会在这里写这道无聊的题,你只关心你自己。
数据范围
1 ≤ n , m ≤ 9 1\leq n,m\leq9 1≤n,m≤9, 0 ≤ k ≤ m i n ( n , m ) 0\leq k\leq min(n,m) 0≤k≤min(n,m)
题解
题目大意:在 n × m n\times m n×m的矩阵了填01,问有多少种方案使得每行每列都为 k k k
注意到 n , m n,m n,m特别小,可以采取暴力打表。而容易推出在 k = 0 k=0 k=0时答案是1,而如果 n ≠ m n\ne m n=m且 k ≠ 0 k\ne0 k=0时无解
那么题目就可以转化成 n × n n\times n n×n的矩阵,而容易发现 k k k与 n − k n-k n−k是具有对称性的,那么这个题的最大数据就是 n = m = 9 , k = 4 n=m=9,k=4 n=m=9,k=4,这个用一个比较优秀的暴力(如记忆化)先跑出来,然后就打表
难得的打表题呀,正解是状压 d p dp dp
Code
#include#define ll long longusing namespace std;int n,m,k;ll a[15][15]={ { 1},{ 1},{ 1,2},{ 1,6},{ 1,24,90},{ 1,120,2040}, { 1,720,67950,297200}, { 1,5040,3110940,68938800}, { 1,40320,187530840,24046189440,116963796250}, { 1,362880,14398171200,12025780892160,315031400802720}};;int main(){ freopen("algebra.in","r",stdin); freopen("algebra.out","w",stdout); scanf("%d%d%d",&n,&m,&k); if (n!=m) { if (k==0) printf("1\n"); else printf("0\n"); fclose(stdin); fclose(stdout); return 0; } if (2*k>n) k=n-k; printf("%lld\n",a[n][k]); fclose(stdin); fclose(stdout); return 0;}
发表评论
最新留言
不错!
[***.144.177.141]2025年04月12日 17时20分30秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程
2019-03-06
线程stop和Interrupt
2019-03-06
Android中定时执行任务的3种实现方法
2019-03-06
nodejs中npm常用命令
2019-03-06
基于Vue2.0+Vue-router构建一个简单的单页应用
2019-03-06
基于vue2.0实现仿百度前端分页效果(二)
2019-03-06
JS魔法堂:函数重载 之 获取变量的数据类型
2019-03-06
时间序列神器之争:Prophet VS LSTM
2019-03-06
SpringBoot中关于Mybatis使用的三个问题
2019-03-06
MapReduce实验
2019-03-06
Leaflet 带箭头轨迹以及沿轨迹带方向的动态marker
2019-03-06
java大数据最全课程学习笔记(1)--Hadoop简介和安装及伪分布式
2019-03-06
java大数据最全课程学习笔记(2)--Hadoop完全分布式运行模式
2019-03-06
还在使用集合类完成这些功能?不妨来看看 Guava 集合类!!!
2019-03-06
大部分程序员还不知道的 Servelt3 异步请求,原来这么简单?
2019-03-06
[apue] popen/pclose 疑点解惑
2019-03-06
[apue] getopt 可能重排参数
2019-03-06
移动互联网恶意软件命名及分类
2019-03-06
adb shell am 的用法
2019-03-06