数论
ordinarv
努力才是人生的常态
展开
-
卡特兰数
卡特兰数 组合数学前几项为:1,2,5,14,42,132,429...一、Catalan数的定义令h(1)=1,Catalan数满足递归式:h(n) = h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1),n>=2该递推关系的解为:h(n) = C(2n-2,n-1)/n,n=1,2,3,...(其中C(2n-2,n-1)表示2n-2个中取n-...原创 2018-07-24 20:42:13 · 723 阅读 · 0 评论 -
B-Easy Summation
题目大意定义f(i)=i^k。然后让求f(1)+f(2)+....+f(n) 对1e9取模。数据范围(1≤n≤10000),k(0≤k≤5).所以快速幂好像没什么意义了。就直接求和吧取模要仔细 我就取外面了。AC Code#include<bits/stdc++.h>typedef long long ll;const int INF=0x3f3f3f3f...原创 2018-08-31 15:45:45 · 226 阅读 · 0 评论 -
C-Permutation
分析发现规律n为偶时,1 2 3 4 5 6 7 8n为奇时,1 2 3 4 5 6 7 AC Code#include <iostream>using namespace std;const int maxn= 1e5+10;int a[maxn];int main() { int t,n,cnt; scanf("%d",&t)...原创 2018-08-31 15:53:06 · 296 阅读 · 0 评论 -
求组合数以及组合数取模
1、采用C(a, b) = n! / (m! * (n - m)!),适用范围为n <= 20typedef long long ll;const int maxn=20+5;ll a[maxn];void init() { a[0]=1; for(int i=1; i<maxn) a[i]=a[i-1]*i;}ll get_c(ll n,ll m) { i...原创 2018-09-08 15:01:39 · 463 阅读 · 0 评论 -
HDU-2136Largest prime factor(求一个数最大质因子的位置)
Largest prime factorTime Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 17782 Accepted Submission(s): 6178Problem DescriptionEverybody kno...原创 2019-02-21 17:38:42 · 217 阅读 · 0 评论 -
hdu-5428The Factor(质因数分解)
The FactorTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 3117 Accepted Submission(s): 965Problem DescriptionThere is a sequence of n ...原创 2019-02-21 18:47:47 · 224 阅读 · 0 评论 -
最大质因数
根据算术基本定理,任何一个合数N,都可以被分解为N=a1*a2*...an(a1≤a2≤...≤an,且ai为质数,1≤i≤n).an就是这个合数的最大质因子对于质数,其最大质因数就是本身。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e6+5;boo...原创 2019-02-21 11:22:16 · 1451 阅读 · 0 评论 -
LightOJ - 1341 Aladdin and the Flying Carpet 唯一分解定理
题意:a*b=S,给S 和一条边的最小长度,求多少种组合有一个矩形的毯子,已知它一定不是正方形,并且已知最短边和毯子的面积,求这个毯子可能有多少种形状。分析:首先,如果最短的边大于等于面积的平方根,两个大于面积平方根的边不可能组成面积等于给定面积的矩形。所以这种情况是0. 然后最短边的范围就变成了1-1e6,问题也变成了在最短边(min_side)到面积(area)这些数中有多少对不...原创 2019-06-06 18:59:14 · 264 阅读 · 0 评论 -
错排原理
错排问题考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为Dn。递推公式:Dn=(n-1)(Dn-1+Dn-2) n>3, D1 = 0 , D2 = 1;例题HDU1465-装信封 写n封信,全部装错信封,求有多少种全部装错的方式#include<bits/stdc++.h&...原创 2018-08-21 11:48:47 · 580 阅读 · 0 评论 -
HDU1124 n! 末尾有多少0
N!末尾的0一定是由2*5产生的。而且2因子的个数一定比5因子的个数多。所以只需要求N!的5因子的个数。具体:求 N! (1*2*3*4*5*...*N)里有多少个5其实可以转化成: N!中:是5的倍数的数+是5^2的倍数的数+5^3..... 如50!: 含有10个5的倍数的数:5,15,20,25,30,35,40,45,50 【50/5=10】 含有2个5^2的倍数的...原创 2018-08-21 11:33:06 · 169 阅读 · 0 评论 -
HDU6152-Friend-Graph(拉姆齐(Ramsey)定理)
【trick&&吐槽】鸽巢原理是证明的好方法!【题意】对于一个点数为n(3000)的图让你求出其中是否存在 "一条边没有的三元对" 或者 "三条边的三元对"【分析】https://en.wikipedia.org/wiki/Ramsey%27s_theorem在组合数学上,拉姆齐(Ramsey)定理,又称拉姆齐二染色定理,是要解决以下的问题:要找...原创 2018-08-17 20:00:14 · 414 阅读 · 0 评论 -
HDU 1576 A/B ex欧几里德算法
思路:设(A/B)%9973 = k, 则A/B = k + 9973x (x未知), 因此A = kB + 9973xB,又A%9973 = n, 所以kB%9973 = n, 故kB = n + 9973y (y未知)故(k/n)B +(-y/n)*9973 = gcd(B,9973) = 1扩展欧几里得 求出k/n, 再乘以个n,记得取模,就是answer了PS: ...原创 2018-07-27 21:05:09 · 169 阅读 · 0 评论 -
快速幂、快速乘法(mod)
快速幂由于*的优先级高于%所以不用加括号,但是+优先级却低于%原理,11的二进制是1011,So 我们将其转化为。&1就是取该数二进制的最后一位。typedef long long ll;ll q_pow(ll x,ll y){ ll ans=1; while(y){ if(y&1) ans*=x;//判断n的二进制是否为1 x*=x...原创 2018-08-06 16:12:48 · 1125 阅读 · 0 评论 -
HDU2588-GCD
题意大概:给定N,M(2<=N<=1000000000, 1<=M<=N), 求1<=X<=N 且gcd(X,N)>=M的个数。解法:数据量太大,用常规方法做是行不通的。后来看了别人的解题报告说,先找出N的约数x, 并且gcd(x,N)>= M,结果为所有N/x的欧拉函数之和。 因为x是N的约数,所以g...原创 2018-08-06 19:47:37 · 264 阅读 · 0 评论 -
POJ 2048 Longge's problem (欧拉函数 积性函数)
题意:∑gcd(i, N) 1<=i <=N。由于N 2^31.刚开始想用欧拉求得1的个数,再求N的素因子,用容斥来求解。发现,就算是求得的素因子,也不最大公约数。HUD的一道题,提供了思路。枚举吧。if(N%i==0){最大公约数为1的时候,有几个。欧拉值(N/1);最大公约数为2的时候,有几个。欧拉值(N/2);.....}题目分析:∑gcd(i, ...原创 2018-08-06 19:51:23 · 142 阅读 · 0 评论 -
HDU - 5187 zhx's contest (快速乘法)
题意:作为史上最强的刷子之一,zhx的老师让他给学弟(mei)们出n道题。zhx认为第i道题的难度就是i。他想要让这些题目排列起来很漂亮。zhx认为一个漂亮的序列{ai}下列两个条件均需满足。1:a1..ai是单调递减或者单调递增的。2:ai..an是单调递减或者单调递增的。他想你告诉他有多少种排列是漂亮的。因为答案很大,所以只需要输出答案模p之后的值。题解:对于整段序...原创 2018-08-11 15:52:09 · 193 阅读 · 0 评论 -
Common Math Formula
ACM常用数学公式汇总 1.扇形 1.扇形面积:S=1/2×弧长×半径,S扇=(n/360)πR²2.三角函数 1.定义 基本函数 英文 缩写 表达式 语言描述 正弦函数 s...原创 2018-08-07 11:09:01 · 372 阅读 · 0 评论 -
HDU-1568Fib前四位
题意:输出Fibonacci数组的前四位,n<=100000000;思路:首先:看到这个题的数据范围,0(n)的时间复杂度是不行的。 然后想下数组可不可以用来储存呢?n<=100000000,数太大了,就算表示 ,也会超时。 再想是不是有循环节,但是前四位的是跟后面几位有关系的(可以产生进位),不能只存前四位; 最后想想:Fibonacci数肯定有公式可以求得公...原创 2018-08-07 16:16:44 · 97 阅读 · 0 评论 -
HDU 6441 Find Integer
题目大意已知a,n求a^n+b^n=c^n,根据费马大定理可知,当n>2时无解 n==0易知无解。n=1,b=1,c=a+b;n=2,即为勾股数。Pscin wa,可采用打表,或用scanfAC code#include<bits/stdc++.h>using namespace std;typedef long long ll;cons...原创 2018-08-27 09:59:27 · 145 阅读 · 0 评论 -
欧拉函数入门
What is Euler function对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。例如φ(8)=4,因为1,3,5,7均和8互质。性质:若n是素数p的k次幂,φ(n)=p^k-p^(k-1)=(p-1)p^(k-1),因为除了p的倍数外,其他数都跟n互质 。 欧拉函数是积性函数——若m,n互质,φ(mn)=φ(m)φ(n) phi(p)=p-...原创 2019-07-16 17:22:20 · 216 阅读 · 0 评论