数论之欧拉筛
2020100XWH
这个作者很懒,什么都没留下…
展开
-
二维dp求划分个数
盒子与球 - 洛谷#include<iostream>#include<cstring>#include<vector>#include<cstring>#include<cmath>#include<algorithm>using namespace std;typedef long long ll;int f[15][15];int main(){ int n,r; cin>>.原创 2022-03-24 02:16:58 · 135 阅读 · 0 评论 -
求上一个排列
1.stl直接求#include<bits/stdc++.h>using namespace std;int n,a[10000];int main(){ cin>>n; for(int i=0;i<n;i++) //读入数据 cin>>a[i]; if(prev_permutation(a,a+n)) //如果为真就输出数组 for(int i=0;i<n;i++) .原创 2022-03-23 22:35:05 · 237 阅读 · 0 评论 -
打表暴力验证题目猜想的部分结论
[Celeste-B]Golden Feather - 洛谷节点值为(i+1)^2-1. 求n个点生成一颗生成树的最短总路径猜想总能找到前面的互质的数暴力打表发现只有4和10和之前的数没有互质情况,且经验证当n==4与n==10,4与10最小为3所以特殊输出,而只要往后一个就可以化解所以即利用打表暴力,将问题限制到一个有限简单的问题来处理#include<iostream>#include<cstring>#include<vector>.原创 2022-03-23 17:54:42 · 3561 阅读 · 0 评论 -
线性筛求欧拉函数
定点共线条件可转换为gcd即一个互质对应一条边,即求欧拉函数(注意n==1的特殊情况)[SDOI2008] 仪仗队 - 洛谷#include<bits/stdc++.h>using namespace std;const int maxn=4e4+50;//1e9超126M int phi[maxn],pri[maxn];bool ispri[maxn];int n;void solve(){ int cnt=0; memset(ispri,true,si..原创 2022-03-23 17:42:42 · 152 阅读 · 0 评论 -
excrt扩展剩余定理#include<iostream>#include<cstring>#include<vector>#include<cstring>#include<cmath>#
n个同余方程顺序做n次exgcd,每次以累计lcm作exgcd主元,以新mod作mod,每次ans累加一个exgcd最小值,记得每次ans取累计lcm保证最小正【模板】扩展中国剩余定理(EXCRT) - 洛谷#include<iostream>#include<cstring>#include<vector>#include<cstring>#include<cmath>#include<algorithm>#原创 2022-03-23 12:01:33 · 141 阅读 · 0 评论 -
中国剩余定理
求多个同余方程公共解qmul防止乘法爆ll[TJOI2009] 猜数字 - 洛谷#include<bits/stdc++.h>using namespace std;typedef long long ll;ll exgcd(ll a,ll b,ll &x,ll &y){ if(b==0) { x=1; y=0; return a; } ll d=exgcd(b,a%b,x,y);...原创 2022-03-23 09:43:22 · 522 阅读 · 0 评论 -
exgcd
求二元一次不定方程#include<iostream>#include<cstring>#include<vector>#include<cstring>#include<cmath>#include<algorithm>using namespace std;typedef long long ll;ll gcd(ll a, ll b){ return a==0?b:gcd(b,a%b);}ll e原创 2022-03-20 00:06:36 · 55 阅读 · 0 评论 -
求组合数(
1..!!两数相乘考虑溢出2.线性求1~mod内inv#include<iostream>#include<cstring>#include<vector>#include<cstring>#include<cmath>#include<algorithm>using namespace std;const int nn=3e6+50;inline long long read() { long l.原创 2022-03-20 00:04:44 · 83 阅读 · 0 评论 -
欧拉筛+最小因子方向递推
Sum - 题库 - 计蒜客#include<bits/stdc++.h>const int maxn=2e7+5;using namespace std;int pri[maxn],fst[maxn];bool ispri[maxn];long long sum[maxn];int main (){ int t; cin>>t; sum[1]=1; memset(ispri,true,sizeof(ispri)); int n=maxn-5..原创 2021-10-20 22:53:12 · 60 阅读 · 0 评论