hdu 1465 错排问题(递归问题)
2016-02-12 09:42
274 查看
分析:假设n-1的情况已知,当n时,一种情况是前n-1种情况都错了,F(n-1)第n封只需和其中任何一封换一下就行,所以有F(n-1)*(n-1)情况,第二种情况是前n-1封有一封撞对了,F(n-2)将第n封与这封换一下即可,即F(n-2)*(n-1)种情况;
错排公式: 基本形式:d[1]=0; d[2]=1
递归式:d
= (n-1)*( d[n-1] + d[n-2])
注意:方法数可能超过int型~
AC代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
__int64 a[50];
int main()
{
a[1]=0;a[2]=1;a[3]=2;
int i;
for(i=4;i<=30;i++)
{
a[i]=(i-1)*a[i-1]+(i-1)*a[i-2];
}
int n;
while(~scanf("%d",&n))
{
printf("%I64d\n",a
);
}
return 0;
}
错排公式: 基本形式:d[1]=0; d[2]=1
递归式:d
= (n-1)*( d[n-1] + d[n-2])
注意:方法数可能超过int型~
AC代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
__int64 a[50];
int main()
{
a[1]=0;a[2]=1;a[3]=2;
int i;
for(i=4;i<=30;i++)
{
a[i]=(i-1)*a[i-1]+(i-1)*a[i-2];
}
int n;
while(~scanf("%d",&n))
{
printf("%I64d\n",a
);
}
return 0;
}
相关文章推荐
- 获取图片路径为空的问题
- ZOJ 2770_Burn the Linked Camp
- ZOJ 2770_Burn the Linked Camp
- ZOJ 2770_Burn the Linked Camp
- 从贝叶斯方法谈到贝叶斯网络
- poj1154(大水题)
- 创业的第一百一十八天
- native Qt signal is not callable
- 关于使用Genymotion被墙的临时解决方案
- 【C语言】C语言关键字
- 【Python】python对象与json相互转换
- JavaScript判断表单为空及获取焦点的方法
- Ubuntu14.04 LTS更新源
- Transitioning From Kali 2.0 to Kali Rolling
- FreeRTOS系列第15篇---使用任务通知实现命令行解释器
- 使用原生方法从kafka消费消息
- android 半orm 数据库框架(dileber数据库框架)
- 从头认识Spring-2.2 默认自动装配
- Web开发人员常犯的10个错误
- 使用 Code Snippet 简化 Coding