摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2674小技巧 :当数很大时mod2009就为0了。。。。。。。。View Code #include"iostream"using namespace std;int main(){ int n; int i; while(cin>>n) { int mul=1; if(n<=1000) { for(i=1;i<=n;i++) { mul*=i%2009; mul%=2009; } } else mul=0; cout<<mul<<endl; 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1071View Code //抛物线 yp=a*(x-b)^2+c;//直线 yz=k*x+s;//二重积分公式: f(x0,x1)(yp-yz)*dx;#include"iostream"usingnamespace std;double a,b,c,k,s;double fun(double x){ return1.0*(a*x*x*x/3)-1.0*(a*b+k/2)*x*x+(a*b*b+c-s)*x;}int main(){ int t; double x1,y1,x2,y2,x 阅读全文
摘要:
View Code #include"iostream"using namespace std;int prime(int x){ int i; if(x%2==0&&x!=2) return 0; //此处剪枝可以提高效率,要不超时 for(i=3;i<=sqrt(x);i+=2) { if(x%i==0) return 0; } return 1;}int main(){ int n,m; int i; while(cin>>n) { int count=0; for(i=0; i<n; i++) { cin>>m; 阅读全文
摘要:
算法的力量 2006年5月 算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内功”,把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式 阅读全文
摘要:
求解最大连续子序列和问题,最直接的办法就是求出每个连续子序列的和,然后找出最大和即可,但这种算法的效率为O(n^2),代码如下,int LS(){ int Max=-999999999; for( int i=0;i<n;i++) { int sum=0; for( int j=i;j<n;j++) { sum+=a[j]; if(sum>Max) Max=sum; } } return Max;}这种算法适用于数据量比较小的情况。 在这种方法里, 有许多不必要的重合计算,而正是这些不必要的计算影响了程序的执行效率。为了提高算法的效率,尽可能的排除那些不必要的计算过程,可以采 阅读全文
摘要:
View Code #include"iostream"using namespace std;int main(){ int n; int a[10001]; int i; int j=0; while(cin>>n,n) { memset(a,0,sizeof(a)); int start=0,end=0; int k=0; int sum=0,Max=0; int count=0; int L=20000; for(i=0;i<n;i++) { cin>>a[i]; if(a[i]<0) count++; if(a[i]==0&am 阅读全文
摘要:
数塔问题是典型的dp问题之一,关键点:建立状态转移方程,这也是dp问题常见的一种思考方式(我不知道是不是所有的dp都是这种思考方式,看过的一些资料里面,建立状态转移方程很普遍,可能是自己碰到的面还不够广吧),而这里还有一个更为重要的思考点就是从哪儿开始建立?题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 求经过结点数字之和最大值的问题,用二维数组来表示其中结构也是dp里面常用的方法,我觉的用这种方法可能更易于去建立某种关系:非线性—>线性. 因为我觉的dp的思为方式跨度再大,它也的是采用线性关系来让许多看是间断的,不连续的点变成连续 阅读全文
摘要:
记得刚开始接触dp是数塔问题,那时,感觉dp很深奥,接受不了他的这种跨度比较大的思维方式,因为在这之前,可以说我从来来没有接触过这样的问题, 这种思维方式对我的惯性思维是一个很大的冲击,这也不得不使我重新转换自己的思维习惯,因为在我后来逐渐做dp这类题的时候,有些问题用一般方法是很难解决的,即便用一般方法模拟出来也是tlm。 后来,在对dp逐步的理解和应用过程当中,我感受到了其中的好处,也在慢慢转换着思考方式。一直在学,一直在思考,不同的阶段会遇到不同的问题,有的思考方式很难理解。特别是这种时候,就常常会使我陷入思维困境,可能一小时,一天,有时甚至好几天。到最后实在想不明白,就把问题搁置一边. 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2104思路分析:m和n互质即可。与hdu1222相同 http://acm.hdu.edu.cn/showproblem.php?pid=1222 阅读全文
摘要:
题目链接:http://poj.org/problem?id=1664关于放苹果的那些事。。。。。。。。。。 今天偶然看到一个关于整数划分的算法, 仔细看了后,我想到了放苹果的事,其实这个问题困扰了我很久,一直没想明白放苹果的原理。记得当时做这个题的时候,自己的分析的方法和整数划分的算法是一样的,就是没想到用递归就能做出来,看了一位dn的博客,终于明白是怎么回事了.........例子,整数划分的思想如下:整数划分问题是将一个正整数n拆成一组数连加并等于n的形式,且这组数中的最大加数不大于n。 如6的整数划分为 6 5 + 1 4 + 2, 4 + 1 + 1 3 + 3, 3 + 2 + 1 阅读全文