博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
exam_11.10
阅读量:4705 次
发布时间:2019-06-10

本文共 947 字,大约阅读时间需要 3 分钟。

炮(cannon)

【题⽬描述】 众所周知,双炮叠叠将是中国象棋中很厉害的⼀招必杀技。炮吃⼦时必须 隔⼀个棋⼦跳吃,即俗称“炮打隔⼦”。 炮跟炮显然不能在⼀起打起来,于是rly ⼀天借来了许多许多的炮在棋盘上摆了起来……他想知道,在N×M的矩形⽅格 中摆若⼲炮(可以不摆)使其互不吃到的情况下⽅案数有⼏种。 棋⼦都是相同的。
【输⼊说明】 ⼀⾏,两个正整数N和M。
【输出说明】 ⼀⾏,输出⽅案数mod 999983。
【样例输⼊】 1 3
【样例输出】 7
【数据范围】 对于40%的数据,N<=4,M<=4 对于70%的数据,N<=100,M<=8 对于100%的数据,N<=100,M<=10

题解:

**AHOI2009中国象棋** 原题三维状态的DP⾞(rook)【题⽬描述】 众所周知,⾞是中国象棋中最厉害的⼀⼦之⼀,它能吃到同⼀⾏或同⼀列 中的其他棋⼦。⾞跟⾞显然不能在⼀起打起来,于是rly⼀天又借来了许多许多 的⾞在棋盘上摆了起来……他想知道,在N×M的矩形⽅格中摆最多个数的⾞使 其互不吃到的情况下⽅案数有⼏种。但是,由于上次摆炮摆得实在太累,他为 了偷懒,打算增加⼀个条件:对于任何⼀个⾞A,如果有其他⼀个⾞B在它的上 ⾯(⾞B⾏号⼩于⾞A),那么⾞A必须在⾞B的右边(⾞A列号⼤于⾞B)。 棋⼦都是相同的。 【输⼊说明】 ⼀⾏,两个正整数N和M。 【输出说明】 ⼀⾏,输出⽅案数的末尾50位(不⾜则直接输出)。 【样例输⼊】 2 2【样例输出】 1 【数据范围】 对于20%的数据,N<=10,M<=10。 对于40%的数据,N<=40,M<=40。 对于70%的数据,N<=10000,M<=10000。 对于100%的数据,N<=1000000,M<=1000000。

题解:

**排列组合C(n,m) + 质因数分解(快速质因数分解John M. Pollard方法 n ^(1/4)) + 高精乘**如果 n < m 交换一下一开始写的递推 O(m * (n - m +1)) 后来发现可以矩阵乘法, 再后来发现可以两个sum转换前缀和。。。。然而不是正解。。。。

转载于:https://www.cnblogs.com/soler/p/6052506.html

你可能感兴趣的文章
hdu 1143
查看>>
Selenium Grid操作使用指南
查看>>
搭建hadoop集群,
查看>>
C++ —— 编译程序
查看>>
Search Binary Tree For Pre Order
查看>>
了解自己的学生,因材施教
查看>>
jquery.color.js
查看>>
huffman编码压缩和解压
查看>>
ssm基础配置
查看>>
jquery 自动运行JS 和如何点击标签运行js 及淡入,淡出效果时 如何附加JS函数
查看>>
mysql备份数据库出错mysqldump: [ERROR] unknown option '--no-beep'
查看>>
vim替换^m字符
查看>>
黑马程序员——网络编程
查看>>
Android底层开发技术实战详解——内核、移植和驱动
查看>>
《软件测试实战:微软技术专家经验总结》
查看>>
《学习OpenCV》课后习题解答6
查看>>
UIDatePicker
查看>>
在XP系统中发布MVC3项目nopCommerce2.65及配置
查看>>
PHP开发异步高性能的MySQL代理服务器
查看>>
杭电之统计汉字
查看>>