- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
acm实验报告
扬州大学试题纸
(2012-2013 学年 第 二 学期)
ACM竞赛辅导解题报告
学 院: 信息工程学院
班 级: 哈哈哈
学 号: 哈哈哈
姓 名: 哈哈哈
指导老师: 哈哈哈
目录
组合博弈论
HDU 1465不容易系列………………………………3
HDU 2041 超级楼梯 ………………………………5
母函数
HDU 1171 BigEventinHdu …………………………7
HDU 2082 找单词……………………………………11
动态规划
HDU 1176 免费馅饼…………………………………15
HDU 1421搬寝室 ……………………………………19
搜索
HDU 1969 Pie ………………………………………22
HDU 1905 Pseudoprime Numbers …………………26
组合博弈论
HDU 1465——不容易系列
※题目描述
大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了!
做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样。
话虽这样说,我还是要告诉大家,要想失败到一定程度也是不容易的。比如,我高中的时候,就有一个神奇的女生,在英语考试的时候,竟然把40个单项选择题全部做错了!大家都学过概率论,应该知道出现这种情况的概率,所以至今我都觉得这是一件神奇的事情。如果套用一句经典的评语,我们可以这样总结:一个人做错一道选择题并不难,难的是全部做错,一个不对。
不幸的是,这种小概率事件又发生了,而且就在我们身边:
事情是这样的——HDU有个网名叫做8006的男性同学,结交网友无数,最近该同学玩起了浪漫,同时给n个网友每人写了一封信,这都没什么,要命的是,他竟然把所有的信都装错了信封!注意了,是全部装错哟!
现在的问题是:请大家帮可怜的8006同学计算一下,一共有多少种可能的错误方式呢?
Input
输入数据包含多个多个测试实例,每个测试实例占用一行,每行包含一个正整数n(1n=20),n表示8006的网友的人数。
Output
对于每行输入请输出可能的错误方式的数量,每个实例的输出占用一行。
Sample Input
2
3
Sample Output
1
2
※问题描述
我对本题目的理解为:
有n(自己输入)封信和n个信封,可以给每封信和每个信封编号,每封信都有与之一一对应的信封。将每封信放入不与之对应的任一信封中,共有多少种可能的错误方式。
※解题思想
从特殊入手,当有一个信封和一封信的时候,不可能装错,所以可能性为0;当有两封信和两个信封的时候,则互相装错,可能性为1;当有三封信和三个信封的时候,可能性为2。
也就是说,第1,2,3…n封信分别和第1,,2,3…n个信封位置对应,现在假设信的编号和信封的编号都不对应的时候为a[n]。所以,n封信和n个信封不对应的时候为a[n],n-1封信和n-1个信封不对应的时候为a[n-1],然后依次类推。
第一步:当把第n个元素放在除了第n个位置外的任何一个位置k的时候,有n-1种可能性。这是第一个大前提。
第二步:将第k个元素放在某个位置时,则分两种情况。第一种情况是,当第k个元素放在了第n个位置上,就是说k和n互相换错位置的时候,那剩下的n-2个元素则有a[n-2]种放错的可能性。第二种情况是,第k个元素放在了除第n个位置的任一n-2个位置上,这样的话就可以看成是将n-1封信分别放错位置,就是有a[n-1]种可能性。
综上分析,可以得到一个递推公式:
a[n]=(n-1)*(a[n-2]+a[n-1])
特例验证:
当有4封信和4个信封,分别编号1,2,3,4.将第1封信放在第2个第3个或第4个信封中,
共有3种可能性,现在假设放在第2个信封中,接着,放第2封信,当将其放在第1个信封中时,则剩下2个信封和信一一对应,可能性为1;当要将其放在第3或第4个信封中时,则对于第2、3、4封信来说则有第1、3、4个信封可以放,就是3封信的特殊情况,可能性为2。所以说4封信的时候可能性即为3*(1+2)=9种情况。
※代码
1 #include stdio.h
2 int main()
3 {
4 __int64 a[21],i,n;
5 a[2]=1;
6 a[3]=2;
7 for(i=4;i21;i++)
8 {
9
文档评论(0)