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),于是直接摆烂交暴力垫底,成功为我的 ...
随机推荐
- mysql用户与权限操作
本文所有操作均在mysql8.1下验证,mysql5.x部分语句不适用. 1.创建用户 '; # 创建用户test,密码123456,%表示允许在所有主机登陆 用户表为mysql库小的user表,Ho ...
- mybatis报错:Invalid bound statement (not found)
mybatis报错:Invalid bound statement (not found)的原因很多,但是正如报错提示一样,找不到xml中的sql语句,报错的情况分为三种: 第一种:语法错误 Java ...
- LeetCode 142:环形链表 II Linked List Cycle II
给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 - ...
- 【MySQL配置参数】sync_binlog和innodb_flush_log_at_trx_commit
sync_binlog和innodb_flush_log_at_trx_commit这2个参数都是MySQL中,配置日志持久化时机的,但有很大不同,做下对比分析总结. 1.MySQL服务器配置参数:s ...
- 解锁云原生 AI 技能 - 开发你的机器学习工作流
按照上篇文章<解锁云原生 AI 技能 | 在 Kubernetes 上构建机器学习系统>搭建了一套 Kubeflow Pipelines 之后,我们一起小试牛刀,用一个真实的案例,学习如何 ...
- DAX 第七篇:分组聚合
DAX有三个用于生成分组聚合数据的函数,这三个函数有两个共同的特征:分组列和扩展列. 分组列是用于分组的列,只能来源于基础表中已存的列,分组列可以来源于同一个表,也可以来源于相关的列. 扩展列是由na ...
- 个性化你的 Git Log 的输出格式
个性化你的 Git Log 的输出格式
- Visual Studio警告IDE0006的解决办法 引用的dll或者包出现黄色叹号
首先这种错误,一般是web项目出现的. 一.按照微软官方给的解决方案,查找错误日志: 1. 关闭 Visual Studio. 删除解决方案下的.vs文件夹,这个文件夹默认是隐藏的,找不到的需要打开隐 ...
- CSS 基础面试题
1 介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin 低版本IE盒子模型:宽 ...
- Linux入门——初识Linux
Linux入门——初识Linux 摘要:本文主要说明了Linux是什么,Linux发展历史,以及同Linux系统有关的一些基本知识. 简介 操作系统 Linux系统同Windows系统.Mac系统一样 ...