CSP前的板子
板子A(扩展欧几里得)
题目描述
求关于x的同余方程 ax≡1(modb) 的最小正整数解。
输入格式
一行,包含两个正整数 a,b,用一个空格隔开。
输出格式
一个正整数 x,即最小正整数解。输入数据保证一定有解。
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
long long xx,yy;
void exgcd(long long aa,long long bb)
{
if(bb==)
{
xx=;
yy=;
return;
}
exgcd(bb,aa%bb);
long long tt=yy;
yy=xx-(aa/bb)*yy;
xx=tt;
}
int main()
{
long long aa,bb;
scanf("%lld%lld",&aa,&bb);
exgcd(aa,bb);
xx=((xx%bb)+bb)%bb;
printf("%lld",xx);
return ;
}
板子B1(乘法逆元(费马小定理或欧拉定理))
题目描述
给定n,p求1~n中所有整数在模p意义下的乘法逆元。
输入格式
一行n,p
输出格式
n行,第i行表示i在模p意义下的逆元。
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
long long mod;
long long ksm(long long aa,long long bb)
{
long long ret=;
while(bb!=)
{
if(bb%==)ret=((ret%mod)*(aa%mod))%mod;
bb/=;
aa=(aa%mod)*(aa%mod)%mod;
}
return ret%mod;
}
int main()
{
long long i;
long long n;
scanf("%lld%lld",&n,&mod);
for(i=;i<=n;i++)
{
printf("%lld\n",ksm(i,mod-));
}
return ;
}
板子B2(乘法逆元(扩展欧几里得))
题目描述
给定n,p求1~n中所有整数在模p意义下的乘法逆元。
输入格式
一行n,p
输出格式
n行,第i行表示i在模p意义下的逆元。
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
long long n,mod;
long long xx,yy;
void exgcd(long long aa,long long bb)
{
if(bb==)
{
xx=;
yy=;
return;
}
exgcd(bb,aa%bb);
long long tt=yy;
yy=xx-(aa/bb)*yy;
xx=tt;
}
int main()
{
long long i;
scanf("%lld%lld",&n,&mod);
for(i=;i<=n;i++)
{
exgcd(i,mod);
xx=((xx%mod)+mod)%mod;
printf("%lld\n",xx);
}
return ;
}
板子B3(乘法逆元(线性筛))
题目描述
给定n,p求1~n中所有整数在模p意义下的乘法逆元。
输入格式
一行n,p
输出格式
n行,第i行表示i在模p意义下的逆元。
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
long long inv[];
long long n,mod;
int main()
{
scanf("%lld%lld",&n,&mod);
long long i;
inv[]=;
printf("1\n");
for(i=;i<=n;i++)
{
inv[i]=mod-(mod/i)*inv[mod%i]%mod;
printf("%lld\n",inv[i]);
}
return ;
}
板子C(线性筛质数)
题目描述
如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)
输入格式
第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。
接下来M行每行包含一个不小于1且不大于N的整数,即询问该数是否为质数。
输出格式
输出包含M行,每行为Yes或No,即依次为每一个询问的结果。
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
bool vist[];
int prim[];
int tot=;
int main()
{
int n,m;
int i,j;
scanf("%d%d",&n,&m);
for(i=;i<=n;i++)
{
if(!vist[i])prim[++tot]=i;
for(j=;j<=tot&&i*prim[j]<=n;j++)
{
vist[prim[j]*i]=;
if(i%prim[j]==)
break;
}
}
int qq;
vist[]=;
for(i=;i<=m;i++)
{
scanf("%d",&qq);
if(vist[qq]==)printf("Yes\n");
else printf("No\n");
}
return ;
}
板子D(GCD&LCM)
题目描述
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入格式
两个整数m和n。
输出格式
两个整数最大公约数,最小公倍数
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
long long gcd(long long aa,long long bb)
{
if(bb==)return aa;
else return gcd(bb,aa%bb);
}
int main()
{
long long n,m;
scanf("%lld%lld",&n,&m);
long long ls=gcd(n,m);
printf("%lld %lld",ls,n*m/ls);
return ;
}
CSP前的板子的更多相关文章
- CSP前的板子们
见窝的luogu博客qwq noip前的板子们
- noip前打板子 qwq
在某咕上打了一晚上的模板 感觉还好... #include<bits/stdc++.h> #define LL long long using namespace std; inline ...
- CSP前模板复习
Tarjan 求强连通分量 展开查看 #include #include #include using namespace std; const int N = 1e4 + 1e3; int n, m ...
- [日常] NOIP前集训日记
写点流水账放松身心... 10.8 前一天考完NHEEE的一调考试终于可以开始集训了Orz (然后上来考试就迟到5min, GG) T1维护队列瞎贪心, 过了大样例交上去一点也不稳...T出翔只拿了5 ...
- [OI]省选前模板整理
省选前把板子整理一遍,如果发现有脑抽写错的情况,欢迎各位神犇打脸 :) 数学知识 数论: //组合数 //C(n,m) 在n个数中选m个的方案数 ll C[N][N]; void get_C(int ...
- Codeforces Round #594 (Div. 1)
Preface 这场CF真是细节多的爆炸,B,C,F都是大细节题,每道题都写了好久的说 CSP前的打的最后一场比赛了吧,瞬间凉意满满 希望CSP可以狗住冬令营啊(再狗不住真没了) A. Ivan th ...
- 【洛谷P1816】忠诚——ST表做法
看了两个小时RMQ并位运算,对二进制勉勉强强有了个初步了解,不能说精通(可能今年CSP前都做不到精通),但是记熟板子做做题还是没有问题的 以下是正式题解,相信你看过了题目,我介绍的是ST表的做法(很简 ...
- REHの收藏列表
搬运自本人的AcWing,所以那里的文章会挺多. 友链(同类文章) :bztMinamoto 世外明月 mlystdcall 新人手册:AcWing入门使用指南 前言 有看到好文欢迎推荐(毛遂自荐也可 ...
- NOIp2021 原地退役记
JS-0013 Day -2 - 2021.11.17 打了场 cmd_blk 出的模拟赛,T2 T3 都是做过的原题(AGC010C & ARC092D),于是直接摆烂交暴力垫底,成功为我的 ...
随机推荐
- 【Java语言特性学习之四】常用集合
java中常见的数据结构
- iOS性能优化-数组、字典便利时间复杂
上图是几种时间复杂度的关系,性能优化一定程度上是为了降低程序执行效率减低时间复杂度. 如下是几种时间复杂度的实例: O(1) return array[index] == value; 复制代码 O( ...
- kali渗透综合靶机(十七)--HackInOS靶机
kali渗透综合靶机(十七)--HackInOS靶机 靶机下载地址:https://www.vulnhub.com/hackinos/HackInOS.ova 一.主机发现 1.netdiscover ...
- .NET Core工作流引擎(RoadFlow)多语言版发布
经过两个月的辛苦努力.NET Core工作流引擎(RoadFlow)多语言版发布了,在原来只有一种简体中文语言的基础上增加了繁体中文和英文两种语言,还可以通过扩展增加任意语言包.至此RoadFlow工 ...
- AI与数学笔记之深入浅出的讲解傅里叶变换(真正的通俗易懂)
原文出处: 韩昊 # 作 者:韩 昊 # 知 乎:Heinrich # 微 博:@花生油工人 # 知乎专栏:与时间无关的故事 # 谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张 ...
- .Net MVC 提示未能加载文件或程序集
最近在开发.Net MVC程序时,突然出现未能加载文件或程序集的错误, 错误1 错误2 猜测时由于引用了Swagger,导致Swagger依赖的组件版本和现有版本冲突(现在仍未确定是这个原因),浪费了 ...
- webapi 导入excel处理数据
参考资料 https://blog.csdn.net/pan_junbiao/article/details/82935992 https://www.cnblogs.com/dansedia ...
- 安装Yapi时,出现json-schema-faker模块找不到问题
今天换了一台机器按以前的方式安装Yapi工具时,竟然出现了错误. 一 安装yapi时,出现了下面的报错,一开始以为没安装json-schema-faker模块.后面通过找资料,发现是权限问题, 使用c ...
- c++实现文件复制并修改相应属性
问题描述 完成一个目录复制命令mycp,包括目录下的文件和子目录, 运行结果如下: beta@bugs.com [~/]# ls –la sem total 56 drwxr-xr-x 3 beta ...
- 小鸟初学Shell编程(一)认识Shell
开篇介绍 Linux里非常的有用的一个功能,这个功能就叫Shell脚本. Shell脚本在我日常开发工作里也占了非常重要的角色,项目中一些简单的工作我们都可以使用Shell脚本来完成,比如定时删除日志 ...