数论之欧拉筛
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 · 131 阅读 · 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 · 229 阅读 · 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 · 3543 阅读 · 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 · 148 阅读 · 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 · 131 阅读 · 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 · 514 阅读 · 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 · 49 阅读 · 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 · 82 阅读 · 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 · 57 阅读 · 0 评论