小明的骰子(递推)
来源:互联网 发布:python读取jason文件 编辑:程序博客网 时间:2024/05/16 10:22
小明的骰子
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
输入
输出
示例输入
212
示例输出
621
提示
如果只抛一次骰子,骰子有6个面。所以一共可以抛出6种可能性。
如果一次性抛2个骰子,可能的结果有以下几种:
(1,1)(1,2)(1,3)(1,4)(1,5)(1,6) 6
(2,2)(2,3)(2,4)(2,5)(2,6) 5
(3,3)(3,4)(3,5)(3,6) 4
(4,4)(4,5)(4,6) 3
(5,5)(5,6) 2
(6,6) 1
即,一共21种 合计21
校赛的时候的一道题,那个时候我还不知道递推为何物。。
将6种骰子开头的总类打表 即f[1][j]--f[6][j] (j代表骰子的数目)f[7][j]为f[1][j]--f[6][j]的和 即骰子数为 j 时的答案
规律就是以1开头骰子即f[1][j] 其值等于f[7][j-1] 而f[i][j]=f[i-1][j]-f[i-1][j-1] (i>=2) 规律在纸上找的,这里我也没办法打出来了。。找起来的话不算难 写出前4种情况差不多就能看出来了
#include <iostream> //小明的骰子--递推#include <algorithm>#include <cstdio>#include <cstring>using namespace std;long long f[10][1010];const int MOD=1000007;int main(){int i,j,t,n;for(i=1;i<=6;i++)f[i][1]=1;f[7][1]=6;for(j=2;j<=1010;j++){f[1][j]=f[7][j-1];f[7][j]=f[1][j];for(i=2;i<=6;i++){f[i][j]=f[i-1][j]-f[i-1][j-1];f[7][j]+=f[i][j];}}cin>>t;while(t--){cin>>n;cout<<f[7][n]%MOD<<endl;}return 0;}
- 小明的骰子(递推)
- 小明的骰子
- 小明的骰子
- 小明的骰子(SDUT 2859)
- 小明的骰子 SDUT
- SDUT 2859 小明的骰子
- 小明的骰子 SDUT 2859
- 垒骰子(经典递推、矩阵快速幂)
- 第6届—校赛 小明的骰子
- 关于骰子的一个小算法
- 掷骰子的小程序 HTML5
- 擅长排列的小明 II 递推公式
- C++进阶小程序(投骰子)
- NYOJ 题目469擅长排列的小明 II(递推)
- 小红的难题<递推>
- Java 常见小问题源代码 掷骰子 游戏 三个骰子,约定三个骰子的点数1-6
- poj 1664 小苹果(递推)
- (NYoj 469)擅长排列的小明 II --简单地推规律,打表思想
- Mysql 中自增字段(AUTO_INCREMENT)的一些常识
- KAFKA分布式消息系统
- V4L2 学习笔记1-驱动的注册过程2
- JSTL学习
- Phonotonic音乐设备:将你的运动变成音乐
- 小明的骰子(递推)
- 用smarty实现简单分页的示例完整代码
- git 常用命令手记
- 自己的独立博客已创建
- 暑期读书季——7月推荐给程序员们的书
- 解决Android与服务器交互大容量数据问题
- Anroid-vlc开源播放器代码编译及简单调用手把手
- 被病毒恶意篡改的文件怎么恢复
- Qt 中 QComboBox 嵌入复选框