![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
文章平均质量分 74
caoxiaoran1202
这个作者很懒,什么都没留下…
展开
-
简单数学题
把一个数N分成若干个互不相同的正整数,使乘积最大。将N分解为N=a1+a2+a3+..+ak可以归纳出这么一些规律1.a1>1 如果a1=1,那么将a1加到ak上,必然使得到的这个乘积大于原来的乘积2.2>=a[i+1]-a[i]>=1,因为如果出现>2,可以将a[i+1],a[i]改为a[i+1]-1,a[i]+1,使得到的乘积更大3.最多只有一个i,使得a[i+1]-a[原创 2013-05-18 20:50:48 · 446 阅读 · 0 评论 -
卡特兰数
百度百科:http://baike.baidu.com/view/2499752.htm#refIndex_2_2499752卡特兰数百科名片 卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。目录简介原理应用括号化出栈次序凸多边形三原创 2013-08-24 22:20:09 · 551 阅读 · 0 评论 -
数论模板总结
欧拉函数//欧拉函数#include#include#include#include#include#include#includeusing namespace std;#define Max 11111int p[Max];int ph[Max]; //记录《=i的且与i互质的个数void prime() //筛选法求素数{ i原创 2013-08-20 21:43:55 · 304 阅读 · 0 评论 -
poj 1942 组合数问题
本题很简单,但处理方法也很特殊,用double来存中间结果,神!同样的公式,不同的处理方法,效果不同。 如:选择n时一定选小的,节约时间。 处理阶乘有三种办法:(1) 传统意义上的直接递归,n的规模最多到20+,太小了,在本题不适用,而且非常慢(2) 稍快一点的算法,就是利用log()化乘为加,n的规模虽然扩展到1000+,但是由于要用三重循环,一旦n规原创 2013-08-23 21:52:58 · 545 阅读 · 0 评论 -
poj 2478 欧拉函数
欧拉函数基础之基础题 #include#include#include#include#include#include#includeusing namespace std;#define Max 1000005int p[Max];int ph[Max]; //记录《=i的且与i互质的个数void prime() //筛选法求素数{原创 2013-08-23 22:39:27 · 348 阅读 · 0 评论 -
hdu 3936 斐波那契数列+规律
原文链接:http://blog.csdn.net/jxy859/article/details/6686305 Fibonacci数列通项公式∴F(n)=(1/√5)*{[(1+√5)/2]^(n+1) - [(1-√5)/2]^(n+1)}性质:[plain] view plaincopyprint? 1.f(0)+f(1)+f(2)+…+f(n)=f转载 2013-08-21 14:49:31 · 636 阅读 · 0 评论 -
hdu 3927 (构造反幻方)
多输出空格WA了,下次得注意这种细节问题了。 #include#include#include#include#include#includeusing namespace std;int map[1000][1000];int main(){ int T; scanf("%d",&T); int n; int cas=0原创 2013-08-21 14:28:52 · 747 阅读 · 0 评论 -
poj 3844 (鸽笼原理)
/*题目还是用到了鸽笼原理,举例: 2 1 2 1 1 2 1 2余数:2 3 1 2 3 1 2 0所以对余数为2的来说1+2=3(从第二个开始计数) 对余数为3的来说1 对余数为1的来说1 对余数为0的来说1(0从第一个开始计数)*/#include#include#include#include#incl原创 2013-08-20 22:15:13 · 641 阅读 · 0 评论 -
hdu 2855 Fibonacci Check-up
本题主要解决一个公式问题:以下分析为转载:={*()^k -()^k}因为:(a+1)^n=*a^k;所以将上式化简成:=()^n+()^n 分子分母都乘*2 =()^n+()^n =()^2n+()^2n原创 2013-07-15 10:09:10 · 428 阅读 · 0 评论 -
hdu 2068
本题就是利用一个错排公式,一个数学组合就能解决错排公式: f[1]=0; f[2]=1; f[3]=2; f[4]=9; f[n]=(n-1)*(f[n-1]+f[n-2]);通用公式f[n]=n!*(1/2!-1/3!+1/4!-........+(-1)^n/n!此题有个比较巧妙的地方,我看了别人代码才发现就是求C(n,原创 2013-07-15 10:21:30 · 373 阅读 · 0 评论 -
计算n!末尾所含0的个数
计算阶乘n!末尾所含0的个数问题描述给定参数n(n为正整数),请计算n的阶乘n!末尾所含有“0”的个数。例如,5!=120,其末尾所含有的“0”的个数为1;10!= 3628800,其末尾所含有的“0”的个数为2;20!= 2432902008176640000,其末尾所含有的“0”的个数为4。计算公式这里先给出其计算公式,后面给出推导过程。令f(x)表示正整数x末尾所转载 2013-07-12 17:08:20 · 1531 阅读 · 0 评论 -
扩展gcd 模板加解析
补充: 扩展欧几里德算法是用来在已知a, b求解一组x,y使得a*x+b*y=Gcd(a,b)(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。下面是一个使用C++的实现: int exGcd(int a, int b, int &x, int &y) { if(b == 0) { x = 1; y = 0; return a; } in原创 2013-10-10 22:15:24 · 552 阅读 · 0 评论