数论
数学小牛马
数学专业本科在读,有奇奇怪怪的coding算法/或者其他想法的可以留言,我会积极为大家带来更多好的原创博文~
展开
-
牛客月赛思维题使徒袭来
使徒袭来参考均值不等式得到:3×x1x2x33≤x1+x2+x33\times\sqrt[3]{x_1x_2x_3}\leq x_1+x_2+x_33×3x1x2x3≤x1+x2+x3最低为3×n33\times\sqrt[3]n3×3n#include<iostream>#include<cstdio>#include<cmath>using namespace std;int n;int main(){ cin>原创 2020-08-24 01:51:21 · 305 阅读 · 0 评论 -
2020杭电第六场Divisibility(数学推导思维)
Divisibility多组数据,给b和x两个数字定义:b进制下的任意数字Y中只要是各个位数加起来的和的结果可以整除x,那么那个数字就可以整除x类似证明可得提取之后得出结论前提(b−1)%x=0(b-1) \%x=0(b−1)%x=0#include<bits/stdc++.h>using namespace std;long long n,b,x;int main(){ scanf("%lld",&n); while(n--){ s原创 2020-08-06 16:20:46 · 266 阅读 · 2 评论 -
2020牛客多校第一场F题 Infinite String Comparision(字符匹配+神奇的周期引理)
牛客多校第一场F题Infinite String Comparision由犇犇PPT得到周期性引理:匹配长度应等于a+b-gcd(a,b)然后除了引理不咋理解但是纸上画画觉得还有点道理就先这样,等到见到了在做学习代码就成了:#include<iostream>using namespace std;string a,b;int len,f;int gcd(int x,int y){ return x%y?gcd(y,x%y):y;}int main(){ while(c原创 2020-07-12 23:23:56 · 515 阅读 · 2 评论 -
2020牛客多校第一场J题[Easy Integration(逆元+数学推导打表)
牛客多校第一场J题 Easy Integration先解决数学问题解积分表达式,听说这是高数题目,(水平还需要提高,这种式子算起来还是不算太难的,但是当时死活不知道咋求,放假放傻了…高中爷orz∫01xn(1−x)ndx=1n+1∫01(1−x)ndxn+1=1n+1xn+1(1−x)n−nn+1∫01xn+1(1−x)n−1(−1)dx∵前一项积分上下限01均等于0所以可省略,经过n次约简得到=n!(n+1)(n+2)×(2n−1)(2n)∫01x2ndx=n!2(2n+1)!\begin{ali原创 2020-07-12 22:53:29 · 335 阅读 · 1 评论 -
Jzzhu and Sequences CodeForces - 450B(矩阵快速幂)
CodeForces - 450B题目和斐波那契数列类似确定转移矩阵然后计算(以此类推)(x2x3)=(x1x2)⋅(0−111)\left( \begin{matrix} \text{x}_2& \text{x}_3\\\end{matrix} \right) =\left( \begin{matrix} \text{x}_1& \text{x}_2\\\e...原创 2020-03-17 21:27:11 · 146 阅读 · 0 评论 -
A-Bi-show and Phi-show
A-Bi-show and Phi-show题意及其思路除去组数什么什么的限制就是要找(一个数+1)(下面用x表示它)及比它大的最小素数先用埃筛打个表,1e6就ok,然后找的时候切记咋方便咋来第一次我用的二分找x或最贴近x且比x大的素数,爆了,参照别人的写法,利用了一下v[maxn]数组,素数条件就是v[j]==j,然后暴力从x往后找就ok,时间不会太长,(素数分布还算均匀哈哈哈)...原创 2019-10-07 13:47:16 · 123 阅读 · 0 评论 -
洛谷P1641
洛谷1641标准卡特兰数的变形问题(n+mm)−(n+mm−1){n+m\choose m}-{n+m\choose m-1}(mn+m)−(m−1n+m)求阶乘+逆元最后求模阶乘预处理可以使用不过题目只要求一组数值不大所以这个题没啥必要1.暴力阶乘#include<iostream>#define ll long longusing namespace std;...原创 2019-10-06 15:39:49 · 138 阅读 · 0 评论 -
POJ1061
POJ1061公式移项后欧几里得扩展模板#include <iostream>#include <cstdio>using namespace std;typedef long long ll;ll x,y,m,n,l,p,c,a,b;ll extended_gcd(ll a,ll b,ll &x,ll &y){ ll r,t; ...原创 2019-10-06 14:17:08 · 81 阅读 · 0 评论 -
HDU1576
HDU1576乘法逆元模板题#include<iostream>#define ll long long using namespace std;const int mod=9973; ll A,B,T;ll power(ll a,ll b,ll p){ ll ans=1%p; for(;b;b>>=1) { if(b&1) { ...原创 2019-10-06 12:41:17 · 119 阅读 · 0 评论 -
POJ2480
POJ2480#include<cstdio>#define ll long longll phi(ll x){ ll ans=x; for(ll i=2;i*i<=x;i++) { if(x%i==0) { ans=ans/i*(i-1); while(x%i==0) x/=i; } } if(x>1) ans=a...原创 2019-10-04 14:47:07 · 186 阅读 · 0 评论 -
扩展欧几里得
例题求解求解关于x的同余方程a*x≡b(mod m)未知数指数为1,所以又称为线性同余方程ax≡b(mod m) ->-> ax-b=km 设k=-y -->>ax+m*y=b根据欧几里得定理及其证明,上式有解仅当gcd(a,m)|b先用欧几里得算法算出一组整数x0,y0满足ax0+my0=gcd(a,m)x=x0*b/gcd(a,m)就是方程的一个解...原创 2019-09-07 16:55:34 · 82 阅读 · 0 评论 -
A^B的所有约数和
计算A的B次方的所有质因数之和先将A分解质因数,推广出约数的和的式子在推广至整个A的b次方乘积的模等于模的乘积再取模,每一项都是等比数列可用等比数列求和公式计算可先用快速幂计算分子和分母对要求数求模只要坟分母不是9901的倍数,就直接计算分母的乘法逆元用乘法逆元乘分子代替原式子如果分母是乘法逆元的倍数,则此时乘法逆元不存在但是p%9901==1;整个式子可化简为 如下#in...原创 2019-08-25 20:05:11 · 592 阅读 · 0 评论 -
同余算法概念
同余定义若整数a和整数b除以正整数m的余数相等,则称a,b模m同余a≡b(mod m)a\equiv b(mod~~m)a≡b(mod m)同余类与剩余系同余类{a+km}所有数模m都是a,该集合为模m的同余类,简记为a‾\overline{a}a完全剩余系有m个模m的同余类分别为0‾,1‾,⋯ ,m−2‾,m−...原创 2019-08-04 15:05:42 · 1048 阅读 · 0 评论 -
线性筛+区间筛
在需要求得的素数区间范围小但是素数边界大的情况下一般使用此类方法例如:求L到R之间的素数1 \leq L <R \leq 2^{31}-1由于范围过大只需要求得R2\sqrt[2]{R}2R线性筛素数时间复杂度O(N)int n,m; int prime[100000],vis[100005];void primes(int n){ memset(vis,0,siz...原创 2019-07-23 19:22:49 · 359 阅读 · 0 评论