
—————数论—————
文章平均质量分 54
w4149
无
展开
-
BZOJ2118: 墨墨的等式
题目大意: 给出一个关于许多x的不定方程:a1*x1+a2*x2+a3*x3+……..+an*xn=B,这里a都是非负整数,求在给定区间[l,r]内,使得所有x都为非负整数的,满足条件的B的个数。 这道怎么看都是数论题的题,其实可以用图论来解决,(额,好像有些突然)。先来分析一下吧,这道题弱机的我肯定是找不到什么优秀的数学方法来解决的,那么我就只好暴力枚举了(反正又不是我算。)直接枚举肯定是要原创 2017-03-26 16:33:56 · 832 阅读 · 1 评论 -
素数统计 平移区间筛质数(1e9)
素数统计思路: 平移区间筛质数(1e9), 对于每个质数逐个在区间中筛数#include <cstdio>#include <cstring>#include <iostream>#include <cstring>#define LL long long using namespace std;int tot = 0, primsize = 0;LL prim[2000010];原创 2017-10-06 14:43:18 · 2238 阅读 · 0 评论 -
1717(容斥)
1717思路: m-=17之后容斥就好了。#include <cstdio>#include <vector>#include <iostream>#include <algorithm>#define LL long longusing namespace std;int n;LL m, ans = 1, a[510];LL gcd(LL a, LL b){ if(b ==原创 2017-10-06 17:03:50 · 287 阅读 · 0 评论 -
各种逆元求法 组合数取模 comb (组合数 Lucas)
组合数取模(comb)【问题描述】 计算C(m,n)mod 9901的值 【输入格式】 从文件comb.in中输入数据。 输入的第一行包含两个整数,m和n 【输出格式】 输出到文件comb.out中。 输出一行,一个整数 【样例输入】 2 1 【样例输出】 2【数据规模与约定】 对于 20%的数据,n<=m<=20 对于 40%的数据,n<=m<=2000 对于 100%原创 2017-06-02 19:49:18 · 4645 阅读 · 1 评论 -
JZOJ 4714 公约数
JZOJ 4714【NOIP2016提高A组模拟8.19】公约数Description 给定一个正整数,在[1,n]的范围内,求出有多少个无序数对(a,b)满足gcd(a,b)=a xor b。 Input 输入共一行,一个正整数n。 Output 输出共一行,一个正整数表示答案。 Sample Input 3 Sample Output 1 解释:只有(2,3)满足要求 对于3原创 2017-09-10 15:58:55 · 398 阅读 · 0 评论 -
LA 4998 Simple Encryption (数论 dfs)
LA 4998 Simple Encryption题意: 输入正整数K1(K1≤50000),找一个12位正整数K2(不能含有前导零)使得K1^K2≡K2(mod10^12)。思路: 神奇的数论题,怎么也想不出来,膜膜大佬的方法。 K1^K2≡K2(mod10^12),同时意味着: K1^K2≡K2(mod10^i),i ≤12 现在我们用(abcd)表示一个四位数,用(bcd)表示它的后原创 2017-08-31 17:34:37 · 420 阅读 · 1 评论 -
欧拉定理 BZOJ 3884 上帝与集合的正确用法
BZOJ 3884 上帝与集合的正确用法出题人的题解如下 … … 辣鸡的我,并看不懂,所以经过漫长的分析,在此辣鸡的赘述一下。注,以下所有a^b均表示a的b次方。有欧拉定理 这道题里面指数太大了,所以我们考虑在mod的意义下,用欧拉定理降指数。因为欧拉定理的条件是a,n互质,所以第一步我们要使mod变成一个奇数,由于任何的p都可以拆成2^k* 奇数q。我们把式子提出一个2^k,原创 2017-06-06 15:05:23 · 531 阅读 · 0 评论 -
BZOJ 2190 仪仗队(欧拉函数)
2190: [SDOI2008]仪仗队Description 作为体育委员,C君负责这次运动会仪仗队的训练。仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。 现在,C君希望你告诉他队伍整齐时能看到的学生人数。Input 共一个数N。Output 共一个数,即C君应看到的学生人数。Sampl原创 2017-07-04 21:25:30 · 368 阅读 · 0 评论 -
gcd 动态维护集合(Mobius)
10.3gcd思路: 用 f(i) 表示 gcd 为 i的数对个数, g(i) 表示 gcd 为 i的倍数的数对个数。那么 f(i)=Σμ(d)g(d) ,我们只需要维护 g(1)~g(max(xi)))。记 s(i) 表示 i的倍数个数,那么 g(i)=s(i)*(s(i)-1)/2,我们只需要在加入删除一个数时枚举它的因数修改s即可。 时间复杂度 O(msqrt(max(xi))%Doggu原创 2017-10-03 20:23:05 · 642 阅读 · 0 评论 -
BZOJ 2154 Crash的数字表格 (Mobius 分块)
2154: Crash的数字表格Time Limit: 20 Sec Memory Limit: 259 MB Description今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple)。对于两个正整数a和b,LCM(a, b)表示能同时被a和b整除的最小正整数。例如,LCM(6, 8) = 24。回到家后,Crash还在想着课上学的东西,为了研究最小公原创 2017-10-11 09:53:25 · 262 阅读 · 0 评论 -
Kor (数学题...)
kor10.19思路: 考虑维护cnt数组,cnt[i]表示是i的数有几个。 考虑维护从cnt1数组,cnt1[i]表示是i的二进制子集的数有几个。 显然cnt1可以从cnt转移过来,但是为了优化时间复杂度,我们选择把cnt和cnt1合并为一个数组用2^20*20的时间处理出来。 代码如下void sumup() { for(int i=0; i<P; i++) {原创 2017-10-19 22:08:25 · 395 阅读 · 0 评论 -
facsum (线性筛 积性函数)
facsum10.20思路: 对于式子进行分析,前面的Phi就是一个很常规的转化,变成i^m。后边一个约数个数,一个Mobius,一个单位函数都是积性函数,所以卷起来也就积性啦(不是积性怎么做嘛。。) 于是就上线性筛了。 对于 if(i % prime[j] == 0) 的情况,也就是 f[p^k*c] = f[p^k] * f[c]。 所以我们只用考虑 f[p^k] 如何计算,d就是p^原创 2017-10-20 19:08:44 · 904 阅读 · 0 评论 -
ccount 进制拆分(Lucas 数位dp)
ccount10.20思路: 对于一个C(n,m) 我们要求的就是它%5后是否为0。 这个nm太大了,我们没有办法直接计算,又发现这个模数P=5是个质数。 考虑Lucas,分解之后就会成为C(a1,b1) * C(a2,b2) * … * C(ai,bi)。 0 <= ai,bi <= 4 要让C(a1,b1) * C(a2,b2) * … * C(ai,bi) = 0 (mod 5),只原创 2017-10-20 19:21:10 · 767 阅读 · 0 评论 -
登月计划 (BSGS 快速乘)
登月计划【题目描述】 HJA在和学弟学数学,于是便有了一道非常简单的数学题:求满足 的最小自然数x。【输入格式】 输入数据一行三个正整数a、b、p,我们保证p是一个质数。【输出格式】 一行一个整数代表最小的自然数x,如果不存在这样的x输出-1。【样例输入】 2 1 3【样例输出】 0【数据范围与规定】 对于30%的数据,1≤p≤1000。 对于100%的数据,1≤a,b#include原创 2017-09-15 21:43:27 · 303 阅读 · 0 评论 -
生成树个数(基尔霍夫矩阵)
Problem 2. tcount Input file: tcount.in Output file: tcount.out Time limit: 1 second Mr.H发现了一个无向连通图,它觉得,如果选出一些边来,使得这个图变为一棵树,那么这个边集就非常棒。 现在,Mr. H 想让你帮忙求出有多少个非常棒的边集? Input 第1行,包含2个整数:n m,表示有n个点m条边原创 2017-08-18 20:03:51 · 6327 阅读 · 0 评论 -
sumit (Mobius 分块)
Problem 2. sumit Time limit: 1 second Memory limit: 256 MBMr. H 最近画了一个很大的表格,这个表格有n 行m 列,其中第i 行第j 列的为元素aij,且: aij = gcd(i; j) Mr. H 现在很好奇整个表格中数的和是多少,你只需要输出这个和模10086。Input 第1 行1 个整数T 表示数据组数。 接下来T 行原创 2017-09-27 21:25:31 · 458 阅读 · 0 评论 -
BZOJ 4403: 序列统计 (组合数 Lucas 数论推导)
BZOJ 4403: 序列统计Time Limit: 3 Sec Memory Limit: 128 MB Description给定三个正整数N、L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量。输出答案对10^6+3取模的结果。Input 输入第一行包含一个整数T,表示数据组数。 第2到第T+1行每行包含三个整数N、L和R,N、L和R的意义如题所述。 1≤N,L原创 2017-06-05 11:35:20 · 511 阅读 · 0 评论 -
BZOJ 1042 硬币购物 (数论 容斥)
1042: [HAOI2008]硬币购物Time Limit: 10 Sec Memory Limit: 162 MB Description 硬币购物一共有4种硬币。面值分别为c1,c2,c3,c4。某人去商店买东西,去了tot次。每次带di枚ci硬币,买s i的价值的东西。请问每次有多少种付款方法。Input 第一行 c1,c2,c3,c4,tot 下面tot行 d1,d2,d3,d4原创 2017-06-05 12:18:32 · 367 阅读 · 0 评论 -
BZOJ 2818 Gcd (数论 欧拉)
【bzoj2818】Gcd2014年6月15日3,0930 Description给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的 数对(x,y)有多少对.Input一个整数NOutput如题Sample Input4 Sample Output4 HINThint 对于样例(2,2),(2,4),(3,3),(4,2)1<=N<=10^7思路: 求1<=x,y<=N且Gcd(原创 2017-06-05 19:43:18 · 319 阅读 · 0 评论 -
BZOJ 2048 书堆 (数论)
2048: [2009国家集训队]书堆Time Limit: 10 Sec Memory Limit: 259 MB DescriptionInput第一行正整数 N M Output一行(有换行符),L,表示水平延伸最远的整数距离 (不大于答案的最大整数) Sample Input样例Input: 1 100Output: 49Input: 2 100Output: 74数据保证答案原创 2017-07-13 20:07:15 · 351 阅读 · 0 评论 -
BZOJ 3505 数三角形 (数论 组合数 gcd)
BZOJ 3505 数三角形 (数论 组合数)Description 给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个。下图为4x4的网格上的一个三角形。注意三角形的三点不能共线。Input 输入一行,包含两个空格分隔的正整数m和n。Output输出一个正整数,为所求三角形数量。Sample Input 2 2Sample Output 76数据范围1<=m,n<=1000思路:原创 2017-07-05 16:51:40 · 585 阅读 · 0 评论 -
原根的求解证明 附代码
求解方法:枚举 从2开始枚举,然后暴力判断g^(P-1) = 1 (mod P)是否当且当指数为P-1的时候第一次成立 而由于原根一般都不大大多都在200以内,所以可以暴力得到.方法 例如求任何一个质数x的任何一个原根,一般就是枚举2到x-1,并检验。有一个方便的方法就是,求出x-1所有不同的质因子p1,p2…pm,对于任何2<=a<=x-1,判定a是否为x的原根,只需要检验a^((x-1)/原创 2017-08-18 19:16:08 · 2488 阅读 · 0 评论 -
排列组合 (组合数 思维题)
排列组合(pc.c/cpp/pas)1 题目描述 T组数据,每次给定n,请求出下式的值,对10^9+7取模:2 输入格式 第一行一个整数T,表示数据组数。 接下来T行,每一行包含一个整数n,含义如题所示。 3 输出格式 输出T行,每行包含一个整数,表示对10^9+7取模后的答案。 样例输入 2 1 2 样例输出 2 6 数据范围与约定 对于30%的数据,T<=500 ,原创 2017-08-22 15:26:33 · 996 阅读 · 0 评论 -
组合数计算(Lucas 逆元 中国剩余定理)
Problem 1. treasure Input file: treasure.in Output file: treasure.out Time limit: 1 second Memory limit: 256 MB 最近Mr. H 得到了一个宝箱, 但宝箱被上了锁, 需要解决一个问题才能将其打开, 问题是这样的: 你有n 个不同的苹果, 你想从里面选出m 个来, 问方案数, 结果原创 2017-08-19 10:38:27 · 489 阅读 · 0 评论 -
高斯消元解一类 Ai1*x1 + Ai2*x2 + ... + Ain*xn = Bi的方程
Problem 1. equation Input file: equation.in Output file: equation.out Time limit: 1 second 给你n个变量组成的m方程组,第i个形如: Ai1 * x1 + Ai2 * x2 + … + Ain * xn = Bi 现在请你帮忙解一下方程。 Input 第1行一个整数T,表示数据组数。 接下来T原创 2017-08-18 19:58:57 · 423 阅读 · 0 评论 -
解一类x^a = b (mod p)的方程
Problem 1. modlog Input file: modlog.in Output file: modlog.out Time limit: 1 second Memory limit: 256 MB Mr.H 最近在练习解方程,最近他发现了一类有趣的方程,希望你能帮忙解决。给出a; b; p,希望你能 帮忙解如下方程:x^a = b (mod p) 其中:0 <= x <原创 2017-08-18 19:22:12 · 3690 阅读 · 0 评论 -
解一类A^x=B(mod C)(C是质数)的方程 (BSGS)
bsgs算法 主要用来解决 A^x=B(mod C)(C是质数),都是整数,已知A、B、C求x。(poj 2417 Discrete Logging) 具体步骤如下: 先把x=i*m-j,其中m=ceil(sqrt(C)),(ceil是向上取整)。 这样原式就变为A^(i*m-j)=B(mod C), 再变为A^j×B=A^(m*i) (mod C)。 枚举j(范围0-m),将A^j原创 2017-08-18 08:47:36 · 988 阅读 · 0 评论 -
BZOJ 2440 完全平方数 (二分 莫比乌斯容斥)
BZOJ 2440 完全平方数Description小 X 自幼就很喜欢数。但奇怪的是,他十分讨厌完全平方数。他觉得这些 数看起来很令人难受。由此,他也讨厌所有是完全平方数的正整数倍的数。然而 这丝毫不影响他对其他数的热爱。 这天是小X的生日,小 W 想送一个数给他作为生日礼物。当然他不能送一 个小X讨厌的数。他列出了所有小X不讨厌的数,然后选取了第 K个数送给了小X。小X很开心地收下了。原创 2017-08-25 19:20:06 · 262 阅读 · 0 评论 -
组合数 (Lucas)
crf 出生的第一秒1 Description crf 是一个天才。 他出生的第一秒,就已经学完了整本《组合数学》。 他觉得作为高中生的你,应该比才出生一秒的他差不到哪去,于是他决定向你问一个问题。 crf 想知道,从n 个物品中选出m 个的方案数,由于他很讨厌很长的答案,所以他想知道模p 后的答案。2 Input 输入的第一行为三个整数n; m; p。3 Output 输出共一行,为原创 2017-08-27 15:19:56 · 401 阅读 · 0 评论 -
b进制分解 加乘最小步数
b进制分解#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#define LL long long#define N 1000010using namespace std;int S, T, a, b;int f[N], pw[110];int run(){ f[S] = 0;原创 2017-11-07 17:24:27 · 532 阅读 · 0 评论