数论
文章平均质量分 72
Selvaggia
这个作者很懒,什么都没留下…
展开
-
包子凑数(如果gcd(a,b)=1,由于1能整除所有整数,此时ax+by能得到所有整数)
在例子4x+5y=c中,因为gcd(4,5)=1,那么不管c是什么整数,都存在整数解x、y ,也就是说答案不是INF。题目分两步, (1)判断结果是否为INF;(2)如果不是INF,统计数量。考点是“数论gcd+简单DP”。什么时候答案不是INF?也就是说,除了少数一些整数无法组合得到,其他所有的整数都能得到。因为观察gcd函数可知,两个数求公因子,一个数为0,直接返回另一个数作为公因子。首先看2个数a、b的情况,结论是:若gcd(a,b)=d,则答案不是INF。若把c看成常数,这是一个二元一次方程。原创 2023-04-03 10:48:52 · 269 阅读 · 0 评论 -
蓝桥杯之数论专题
蓝桥杯之数论专题等差数列最短项数(最大公因子)X的因子链(分解质因子)思路:做法一:直接分解质因子做法二:欧拉筛(原理是每一个非质数都被其最小质因数筛去,则可以记录合数的最小质因数,直接找到x的最小质因数,分解掉再继续找剩下部分的质因数)边乘边除的适宜情况聪明的燕姿五指山(扩欧)扩展欧几里得算法C循环(扩欧)最大比例正则问题糖果(状压dp)等差数列最短项数(最大公因子)一开始简单以为是 n-1个差值里面的最小值,实际上不一定满足别的n-1个差值就恰好是该最小值的整数倍,应该找的是n-1个差值的最大公原创 2023-03-25 15:05:36 · 902 阅读 · 0 评论 -
相同的球放入不同的盒子,单源最短路径
@TOC货物摆放暴力搞不定有点搞笑,暴力搞不定,极其缓慢#include <iostream>#include <algorithm>#include <set>using namespace std;#define int unsigned long longconst int N=105;int a[5];struct node{ int x,y,z; node(int x,int y,int z):x(x),y(y),z(z){ }原创 2022-04-06 22:10:02 · 814 阅读 · 0 评论 -
NOI**简单**英文题(dfs解多元方程,整数唯一分解定理(质因子))
这是数论中一种典型的问题:高次方程的整数解.这类问题限制条件越多,越难出现无穷多解的情况,有限解的数量也越少.对于这类问题,一般采用试数的方法.操作过程是:把所有限制转换成为数学条件,然后逐一猜测答案并进行验算.而第一步:转换为数学条件,直接关系到第二步验算的复杂程度.首先对711000000做分解素因子处理711000000=26∗32∗56∗79711000000=26 *32 *56 *79711000000=26∗32∗56∗79这里最令人注目的数字莫过于79了.把79的倍数列表如下:0.原创 2022-02-23 18:35:35 · 274 阅读 · 0 评论 -
构造序列 x个 x^t --> x^{t+1}
原题链接序列要求我们自己构造,和也是由自己决定,那么大可以假定一个初始值,进而按条件推出和,那么这个序列自然会满足条件x个xtx^txt–> xt+1x^{t+1}xt+1xt+1x^{t+1}xt+1和(x-1)个xt+1x^{t+1}xt+1 -->xt+2x^{t+2}xt+2自己构造,假定t从0开始,首先a2a_2a2~ ax+1a_{x+1}ax+1这头x个数,x个x0x^{0}x0,贡献和S1:x0+1x^{0+1}x0+1接下来需要 (x-1)个x0+1x^{0+原创 2022-03-06 13:03:37 · 97 阅读 · 1 评论 -
分解素因子,区间素数筛
这里写目录标题素因子能分解出n个因子的最小正整数整数的素因子分解法一、素数筛直接试除整除,不用筛素数????素数区间筛给定区间[L,R],计算区间素数个数Counting Divisors (HDU - 6069)对于1≤l≤r≤10121\leq l\leq r\leq 10^{12}1≤l≤r≤1012筛出1e6范围的质数找出大于1e6的最小质数?素因子重要知识:把一个数字进行质因数分解,可以得到它的因子数量等于 ∏(ai+1)\prod(a_i+1)∏(ai+1)其中ai是第 i 个质数的幂次原创 2022-02-18 18:26:05 · 786 阅读 · 0 评论 -
排列组合(低精度*高精度,卢卡斯定理,阶乘数某个质因数的幂次
885. 求组合数 I(递推)886. 求组合数 Ⅱ(初始化fact[])887. 求组合数Ⅲ(卢卡斯定理,模p在10510^5105左右,n、m不爆longlong就行1≤n≤m≤ 10 ^ 18, 时间复杂度O(p∗logpm∗log2pO(p*log_pm*log_2pO(p∗logpm∗log2p)卢卡斯定理模板888. 求组合数 Ⅳ(结果不取模,质因数的幂次高精度相乘,一个(阶乘)数总能分解成若干个质因数的幂次的乘积,求某个质因数的幂次几何)伯努利错装信封问题885. 求组合数 I(递推).原创 2022-02-11 22:31:45 · 1360 阅读 · 0 评论 -
(a/GCD) * (b/GCD) = LCM/GCD
GCD & LCMGiven x and y (2 <= x <= 100,000, 2 <= y <= 1,000,000), you are to count the number of p and q such that:p and q are positive integers;GCD(p, q) = x;LCM(p, q) = y.Inputx and y, one line for each test.OutputNumber of pairs原创 2022-02-05 21:29:07 · 217 阅读 · 0 评论 -
拓展欧几里得算法 解 线性同余方程,x解的最小间距mod=p/gcd(a,p),最小正整数解x=(x*d/gcd(a,p)%mod)%d
C Looooops#include<iostream>#include<algorithm>using namespace std;typedef long long ll;ll a,b,c,k;ll exgcd(ll a,ll p,ll& x,ll& y){//a*x+p*y=gcd(a,p) if(!p){ y=0,x=1;return a; } ll res= exgcd(p,a%p,x,y); int temp=y; y=x-a原创 2022-01-27 11:21:46 · 264 阅读 · 0 评论 -
C. Beautiful Numbers 组合数+求逆元
C. Beautiful Numbers这里求逆元用的 费马小定理#include<iostream>#include<algorithm>using namespace std;typedef long long ll;const int mod=1e9+7;const int N=1e6+1;ll fact[N];void initfact(){//初始化阶乘矩阵 Cn,m=n!/(m!*(n-m)!) fact[0]=1; for(int i=1;i&l原创 2022-01-26 22:40:55 · 190 阅读 · 0 评论 -
欧拉筛法prime[j]*i<=MAX; i%prime[j] ——break
埃氏筛法,O(nloglogn),在一些数据范围达到1e7这样的题目中,不太行,于是 欧拉筛法 应运而生,也即 O(n)的线性筛法。代码来咯#include <iostream>#include <math.h>#include<string.h>using namespace std;const int MAX=1e6;int vis[MAX];int prime[MAX];bool prime1(int x){ int t=(int)sqrt(x)原创 2022-01-23 21:35:05 · 317 阅读 · 0 评论