CTX学长的找位置游戏(错排)
来源:互联网 发布:java开发有必要买mac吗 编辑:程序博客网 时间:2024/05/23 14:04
题目链接:点击打开链接
CTX学长的找位置游戏
时间限制:1 Sec内存限制:128 MiBspecial judge:N
提交:12答案正确:4
题目描述
现在教室里的n个人有n把椅子,n个人编号为1—n,第一个人编号为1,第二个人编号为2,以此类推。n个椅子的编号也为1—n,第一个椅子的编号为1,第二个椅子的编号为2,以此类推。现在n个人都坐错了位置(每个人都要选一个位置坐下),这样的情况总共有多少种?高中的数学老师说过1个人的话,是不可能坐错的,2个人总共有一种都坐错位置的情况,3个人有两种都坐错位置的情况,4个人有......
输入
T组输入,接下来的T行(T<300),每一行输入n(0<n<=100000)
输出
输出T行,每一行输出n个人都做错位置的情况有多少种。(由于这些情况实在是太多了,请输出答案对10007取余后的结果)
样例输入
复制
512356
样例输出
复制
01244265
这道题是错排,借着道题发个错排的博客。。。
我认为百度写得特别清楚
以下是百度的:
当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用D(n)表示,那么D(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推.
第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法;
第二步,放编号为k的元素,这时有两种情况:⑴把它放到位置n,那么,对于剩下的n-1个元素,由于第k个元素放到了位置n,剩下n-2个元素就有D(n-2)种方法;⑵第k个元素不把它放到位置n,这时,对于这n-1个元素,有D(n-1)种方法;
综上得到
D(n) = (n-1) [D(n-2) + D(n-1)]
特殊地,D(1) = 0, D(2) = 1.
感觉不用解释了,上代码
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int mod=10007;int a[100005];int main(){ a[1]=0; a[2]=1; for(int i=3;i<=100000;i++) { a[i]=((i-1)%mod*((a[i-1]+a[i-2])%mod))%mod; } int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); printf("%d\n",a[n]); }}
阅读全文
0 0
- CTX学长的找位置游戏(错排)
- CTX学长的找位置游戏
- NYOJ J : CTX学长的找位置游戏
- CTX学长的01串
- CTX学长的快速幂
- CTX学长的快速幂(快速幂运用)
- NYOJ I : CTX学长的快速幂
- NYOJ B : CTX学长的01串
- web.py的ctx(context)
- HDU 1281 棋盘游戏 (枚举+匈牙利找关键位置)
- 游戏调研报告(学长作品)
- 找词的位置
- ${ctx} 的那些事
- Netty中ctx.writeAndFlush与ctx.channel().writeAndFlush的区别
- 找位置(简单模拟)
- sdut oj2109 找女朋友(快排)
- 找位置
- 找位置
- BUG集
- Linux 如何重启网络、禁用网卡
- Git之(四)分支管理
- 大型互联网技术架构2 - 运营/技术看运维?
- centos配置nginx php
- CTX学长的找位置游戏(错排)
- 最小二乘与交叉熵代价函数的区别(作用及公式推导)
- Hadoop和hadoop生态圈
- addEventListener("transitionend", ()=>{...})方法回调函数执行多次问题
- 数据结构 — 哈希表的理解与简单实现
- CSDN怎么转载别人的博客
- NAND FLASH操作学习笔记
- Tornado异步
- Occlusion-free Face Alignment: Deep Regression Networks Coupled with De-corrupt AutoEncoders