
数论
wwwlps
这个作者很懒,什么都没留下…
展开
-
(10.16 训练)codeforces C. Primes and Multiplication
题目:http://codeforces.com/contest/1228/problem/C题意:就不细述了。题解:对于一个10^9以内的数分解质因数(数量较少),计算每一个质因数在1~n(10^18)每个数的贡献值。假如有一质因数3,n为2828/31 2 1x3 4 5 2x3 7 8 3x3 10 11 4x3 13 14 5x3 16 17 6x3 19 20 7x3 ...原创 2019-10-16 12:59:35 · 201 阅读 · 0 评论 -
欧拉线性筛 (模板)
普通模板int cnt=0; memset(book,0,sizeof(book)); book[1]=1; for(int i=2;i<=maxn;i++) { if(!book[i]) { num[cnt++]=i; } for(int j=0;j<cnt&&num[j]*i<=maxn;j++) { book[n...原创 2019-05-23 11:13:45 · 135 阅读 · 0 评论 -
对于C(n,k)*k求和,k从1到n
C(n,k)*k=k*n!/[(n-k)!k!]=n*(n-1)!/[(k-1)!(n-k)!]=n*C(n-1,k-1)1*C(n,1)+2*C(n,2)+3*C(n,3)+.+n*C(n,n)=n[C(n-1,0)+C(n-1,1)+C(n-1,2)+.+C(n-1,n-1)]=n*2^(n-1)原创 2019-05-16 11:31:15 · 6713 阅读 · 0 评论 -
矩阵快速幂(构造)
题目:https://ac.nowcoder.com/acm/contest/221/C构造矩阵#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <vector>...原创 2018-11-18 09:36:34 · 385 阅读 · 1 评论 -
求N(10^14)以内与N互质的数的和(容斥原理,或者欧拉函数)
#include <iostream>#include <cstring>#include <algorithm>#include <cmath>#include <cstdio>#include <map>#include <queue>#include <stack>原创 2018-11-17 22:03:02 · 404 阅读 · 0 评论 -
【二分查找-最大化平均值】POJ 2976 - Dropping Test
【二分查找-最大化平均值】POJ2976 - Dropping Test【题目大意】给出n组ai和bi,去掉k个使得a的总和除以b的总和最大。【思路】也就是取(n-k)个数,最大化平均值,见《挑战程序设计竞赛》P144,最后公式为c(x)=((ai-x*bi)从大到小排列的前(n-k)个的和不小于0)。#include <iostream>#include &l...原创 2018-08-04 10:21:55 · 167 阅读 · 0 评论 -
Fence Building(取模、逆元)
https://nanti.jisuanke.com/t/28963题意:得出公式后,//(n-1)*(n-2)*(n^2-3*n+12)/24+n //(n*(n-1)*(n-2)*(n-3)+(n-1)*(n-2)*12+24*n)/24 ,结果取模1e9+7, 1<=n<=10^18.题解:计算过程中每两个运算都要取模,对于除法,取逆元逆元:因为涉及除数,...原创 2018-07-30 10:18:54 · 475 阅读 · 0 评论 -
素数筛选 和 分解质因数
分解质因数:void init(__int64 n)//求一个数的质因子{ __int64 i; num=0; for(i=2;i*i<=n;i++) { if(n%i==0) { a[num++]=i; while(n%i==0) n=n/i;转载 2018-02-06 12:21:56 · 161 阅读 · 0 评论 -
容斥原理(二进制枚举)
转载内容: hdu 4135(容斥原理)题意:就是让你求(a,b)区间于n互质的数的个数.分析:我们可以先转化下:用(1,b)区间与n互质的数的个数减去(1,a-1)区间与n互质的数的个数,那么现在就转化成求(1,m)区间于n互质的数的个数,如果要求的是(1,n)区间与n互质的数的个数的话,我们直接求出n的欧拉函数值即可,可是这里是行不通的!我们不妨换一种思路:就是求出(1,m)区...原创 2018-02-06 12:00:46 · 377 阅读 · 0 评论 -
斯特林公式求 n! 和 n!在m阶乘下的位数
斯特林公式:公式如下: N!=2πn−−−√(ne)n化简如下:log10(n!)=log10(2πn−−−√(ne)n)原式 = ln2πn√(ne)n原式 = 0.5∗ln(2πn)+n∗lnn−nc++中的log(e)=1.链接:https://www.nowcoder.net/acm/contest/75/A原创 2018-02-06 08:29:08 · 572 阅读 · 0 评论 -
扩展欧几里得及逆元模板
#include#include#include#include#include#include#define INF 99999999#define LL long long using namespace std;LL gcd(int a,int b){ if(b==0) return a; return gcd(b,a%b); } LL extgcd(LL a原创 2017-10-09 09:38:39 · 280 阅读 · 0 评论