计数-排列——Program L

排列

Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Description

大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 
做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样。 
话虽这样说,我还是要告诉大家,要想失败到一定程度也是不容易的。比如,我高中的时候,就有一个神奇的女生,在英语考试的时候,竟然把40个单项选择题全部做错了!大家都学过概率论,应该知道出现这种情况的概率,所以至今我都觉得这是一件神奇的事情。如果套用一句经典的评语,我们可以这样总结:一个人做错一道选择题并不难,难的是全部做错,一个不对。

不幸的是,这种小概率事件又发生了,而且就在我们身边: 
事情是这样的――HDU有个网名叫做8006的男性同学,结交网友无数,最近该同学玩起了浪漫,同时给n个网友每人写了一封信,这都没什么,要命的是,他竟然把所有的信都装错了信封!注意了,是全部装错哟!

现在的问题是:请大家帮可怜的8006同学计算一下,一共有多少种可能的错误方式呢?

Input

输入数据包含多个多个测试实例,每个测试实例占用一行,每行包含一个正整数n(1<n<=20),n表示8006的网友的人数。

Output

对于每行输入请输出可能的错误方式的数量,每个实例的输出占用一行。

Sample Input

  2
  3

Sample Output

  1
  2

分析:设一个数组从c,用递推实现,从题可知道从c[1]=0,c[2]=1,因此从c[i]=(i-1)*(c[i-1]+c[i-2]).

代码如下:

#include <iostream>
#include <cstdio>

using namespace std;
int main()
{
	unsigned long long c[20];
	int n;
	c[1]=0;
	c[2]=1;
	for(int i=3;i<=20;i++)
		c[i]=(i-1)*(c[i-1]+c[i-2]);
	while(scanf("%d",&n)==1)
		printf("%llu\n",c[n]);
	return 0;
}
时间: 2024-12-15 19:04:08

计数-排列——Program L的相关文章

集训第六周 数学概念与方法 计数 排列 L题

Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样. 话虽这样说,我还是要告诉大家,要想失败到一定程度也是不容易的.比如,我高中的时候,就有一个神奇的女生,在英语考试的时候,竟然把40个单项选择题全部做错了!大家都学过概率论,应该知道出现这种情况的概率,所以至今我都觉得这是一件神奇的事情.如果套用一句经典的评语,我们可以这样总结:一个人做错一道选择题并不

概率论1 计数-排列-组合

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 概率 概率论研究随机事件.它源于赌徒的研究.赌博中有许多随机事件,比如投掷一个骰子,是否只凭运气呢? 赌徒逐渐发现随机事件的规律.投掷两个骰子是常见的赌博游戏.如果重复很多次,那么总数为2的次数会比总数7的次数少.这就是赌徒把握到的规律:尽管我无法预知事件的具体结果,但我可以了解每种结果出现的可能性.这是概率论的核心. "概率"到底是什么?这在数学上还有争议."

关于计数排列(模板)

嗯... 在c++中排列的方法有很多,最简单的便是sort排序....(鬼畜的STL库!! 但是有一种排序叫做计数排序(它是与桶排序不同的),虽然它们的时间复杂度都是O(n),但是计数排序比桶排序更稳定.... 下面就根据代码看一下计数排序的模板以及其原理: 1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 int n,z[100],cnt[100],m; 5 int main() 6 { 7 sca

Program L 暴力求解

Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It

ecma5

介绍 这一Ecma标准建立在一些原本的技术上,最为著名的是JavaScript(网景)和JScript (微软).语言由网景的Brendan Eich发明而第一次出现在这个公司的Navigator 2.0浏览器上.它出现在所有Netscape后来的浏览器以及微软从Internet Explorer 3.0之后的所有浏览器上. 这一标准的编制自1996年十一月开始.这一Ecma标准的第一个版本被1997年六月的Ecma General Assembly采纳. 上述Ecma标准被以快速跟进流程提交至

linux基础命令汇总

说明 本文仅仅对一些基础命令做演示,不涉及过多的原理性,以及概念性的东西, 示例中仅仅列出常用的选项,对于不常用的选项不做介绍以及演示. 其中部分帮助信息是来源于man查寻结果,未作翻译,请谅解. enable(内置命令) 命令示例 enable -a 显示所有激活和禁用的内置命令 enable -n 显示所有已经禁用的内置命令 enable -n echo 禁用内置命令 echo 命令演示 禁用命令 [[email protected] ~]#enable -n echo [[email pr

干货!一篇文章集合所有Linux基础命令,适合所有菜鸟学习和老手回顾!

1 文件{ ls -rtl # 按时间倒叙列出所有目录和文件 ll -rt touch file # 创建空白文件 rm -rf 目录名 # 不提示删除非空目录(-r:递归删除 -f强制) dos2unix # windows文本转linux文本 unix2dos # linux文本转windows文本 enca filename # 查看编码 安装 yum install -y enca md5sum # 查看md5值 ln 源文件 目标文件 # 硬链接 ln -s 源文件 目标文件 # 符号

gcc 生成动态链接库

http://blog.csdn.net/ngvjai/article/details/8520840 Linux下文件的类型是不依赖于其后缀名的,但一般来讲: .o,是目标文件,相当于windows中的.obj文件 .so 为共享库,是shared object,用于动态连接的,和dll差不多 .a为静态库,是好多个.o合在一起,用于静态连接 .la为libtool自动生成的一些共享库,vi编辑查看,主要记录了一些配置信息.可以用如下命令查看*.la文件的格式   $file *.la    

【转载】shell实例手册

原文地址:shell实例手册  作者:没头脑的土豆 shell实例手册 0说明{ 手册制作: 雪松 更新日期: 2013-12-06 欢迎系统运维加入Q群: 198173206 请使用"notepad++"打开此文档,"alt+0"将函数折叠后方便查阅 请勿删除信息,转载请说明出处,抵制不道德行为. 错误在所难免,还望指正! # shell实例手册最新下载地址: http://hi.baidu.com/quanzhou722/item/f4a4f3c9eb37f02