摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1134此题考查的是卡特兰数,由于卡特兰数很大,所以考虑大数处理。卡特兰数的前几项为:h(0)=1;h(1)=1;h(2)=2;h(3)=5……卡特兰数的递推公式为:h(n)=h(n-1)*(4*n-2)/(n+1);非递推公式为C(2n,n)/(n+1);此题用递推公式求解,并用到大数的乘法和大数的乘法处理,本题对卡特兰数的前100项做了预处理:AC代码如下:#include<iostream> //卡特兰数求法 递推公式h(n)=h(n-1)*(4*n-2)/(n-1)using na 阅读全文
posted @ 2012-05-03 22:26 龙杉老师 阅读(993) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1431此题可先求10^8以内的最大回文素数,大概用时250秒- -,求得最大回文素数为:9989899,代码如下:// Note:Your choice is C++ IDE#include <iostream>using namespace std;#include<time.h>#include<math.h>int is_p(int n){ int i,m; m=(int)(sqrt(n*1.0)); for(i=2;i<=m;i++) if(n%i= 阅读全文
posted @ 2012-05-03 16:46 龙杉老师 阅读(311) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1215由于此题的测试数据可能有500000个,就想到用预处理法把结果都算出来存到数组中,然而将会超时,可能原因是其测试数据没有500000组,所以不一定都得用预处理法处理。用筛选法处理也会超时。因此可以考虑直接求解,其中一定要先开根号得出结果,在带入循环条件,否则会超时。预处理代码:超时#include<iostream>using namespace std;#include<time.h>#include<math.h>int a[500005]={0};vo 阅读全文
posted @ 2012-05-03 14:25 龙杉老师 阅读(898) 评论(1) 推荐(0)