摘要: 看得迷迷糊糊,还是一知半解啊…………转帖:http://blog.sina.com.cn/s/blog_59e67e2c0100a7yx.html首先引用下leemars的报告:这道题要求N!的最后一个非0数字是多少,如果用一般作法,先统计2和5的个数,然后补乘2,得到的将是TLE。所以还需要再做简化:为了把0去掉,我们把所有的因数2和5都提出来,放到最后再处理。N!中的N个相乘的数可以分成两堆:奇数和偶数。偶数相乘可以写成(2^M)*(M!),M=N DIV 2。M!可以递归处理,因此现在只需讨论奇数相乘。考虑1*3*5*7*9*11*13*15*17* ... *N(如果N为偶数则是N-1 阅读全文
posted @ 2011-09-07 22:38 枕边梦 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 转自http://xuyemin520.is-programmer.com/posts/26265.html题目:就是给你N个房间,然后每个房间1把钥匙,你最初手里没有任何钥匙,要靠破门而入!这里只有第一个房间不能破门进去,其他都可以,给你房间数N,和最多能破门的个数,让你求能全部把房间打开的概率!题目分析:又是是我的第一次啊!受教育了?有木有?这种题目是斯特林第一类数的应用,虽然很裸,但是很经典啊 !首先这题其实让我们求的是给 N个元素,让我们求K个环排列的 方法数。斯特林第一类数的第推公式:S(N,0)=0;S(N,N)=1;S(0,0)=0;S(N,K)=S(N-1,K-1)+S(N-1 阅读全文
posted @ 2011-09-07 21:35 枕边梦 阅读(1602) 评论(0) 推荐(0) 编辑
摘要: 若输入A 战胜 B时,就让B指向A。最后,指向空的就说明没有人战胜过他。如果这样的人只存在一个,那他就是冠军了。 名字的映射用map实现,出现过的名字用set保存#include <set>#include <map>#include <string>#include <iostream>using namespace std;int main(void){ int n, i, t; string b, e; set <string> s; set <string>::iterator it; map <string 阅读全文
posted @ 2011-09-07 16:26 枕边梦 阅读(190) 评论(0) 推荐(0) 编辑