板子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前的板子的更多相关文章

  1. CSP前的板子们

    见窝的luogu博客qwq noip前的板子们

  2. noip前打板子 qwq

    在某咕上打了一晚上的模板 感觉还好... #include<bits/stdc++.h> #define LL long long using namespace std; inline ...

  3. CSP前模板复习

    Tarjan 求强连通分量 展开查看 #include #include #include using namespace std; const int N = 1e4 + 1e3; int n, m ...

  4. [日常] NOIP前集训日记

    写点流水账放松身心... 10.8 前一天考完NHEEE的一调考试终于可以开始集训了Orz (然后上来考试就迟到5min, GG) T1维护队列瞎贪心, 过了大样例交上去一点也不稳...T出翔只拿了5 ...

  5. [OI]省选前模板整理

    省选前把板子整理一遍,如果发现有脑抽写错的情况,欢迎各位神犇打脸 :) 数学知识 数论: //组合数 //C(n,m) 在n个数中选m个的方案数 ll C[N][N]; void get_C(int ...

  6. Codeforces Round #594 (Div. 1)

    Preface 这场CF真是细节多的爆炸,B,C,F都是大细节题,每道题都写了好久的说 CSP前的打的最后一场比赛了吧,瞬间凉意满满 希望CSP可以狗住冬令营啊(再狗不住真没了) A. Ivan th ...

  7. 【洛谷P1816】忠诚——ST表做法

    看了两个小时RMQ并位运算,对二进制勉勉强强有了个初步了解,不能说精通(可能今年CSP前都做不到精通),但是记熟板子做做题还是没有问题的 以下是正式题解,相信你看过了题目,我介绍的是ST表的做法(很简 ...

  8. REHの收藏列表

    搬运自本人的AcWing,所以那里的文章会挺多. 友链(同类文章) :bztMinamoto 世外明月 mlystdcall 新人手册:AcWing入门使用指南 前言 有看到好文欢迎推荐(毛遂自荐也可 ...

  9. NOIp2021 原地退役记

    JS-0013 Day -2 - 2021.11.17 打了场 cmd_blk 出的模拟赛,T2 T3 都是做过的原题(AGC010C & ARC092D),于是直接摆烂交暴力垫底,成功为我的 ...

随机推荐

  1. mysql用户与权限操作

    本文所有操作均在mysql8.1下验证,mysql5.x部分语句不适用. 1.创建用户 '; # 创建用户test,密码123456,%表示允许在所有主机登陆 用户表为mysql库小的user表,Ho ...

  2. mybatis报错:Invalid bound statement (not found)

    mybatis报错:Invalid bound statement (not found)的原因很多,但是正如报错提示一样,找不到xml中的sql语句,报错的情况分为三种: 第一种:语法错误 Java ...

  3. LeetCode 142:环形链表 II Linked List Cycle II

    给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 - ...

  4. 【MySQL配置参数】sync_binlog和innodb_flush_log_at_trx_commit

    sync_binlog和innodb_flush_log_at_trx_commit这2个参数都是MySQL中,配置日志持久化时机的,但有很大不同,做下对比分析总结. 1.MySQL服务器配置参数:s ...

  5. 解锁云原生 AI 技能 - 开发你的机器学习工作流

    按照上篇文章<解锁云原生 AI 技能 | 在 Kubernetes 上构建机器学习系统>搭建了一套 Kubeflow Pipelines 之后,我们一起小试牛刀,用一个真实的案例,学习如何 ...

  6. DAX 第七篇:分组聚合

    DAX有三个用于生成分组聚合数据的函数,这三个函数有两个共同的特征:分组列和扩展列. 分组列是用于分组的列,只能来源于基础表中已存的列,分组列可以来源于同一个表,也可以来源于相关的列. 扩展列是由na ...

  7. 个性化你的 Git Log 的输出格式

    个性化你的 Git Log 的输出格式

  8. Visual Studio警告IDE0006的解决办法 引用的dll或者包出现黄色叹号

    首先这种错误,一般是web项目出现的. 一.按照微软官方给的解决方案,查找错误日志: 1. 关闭 Visual Studio. 删除解决方案下的.vs文件夹,这个文件夹默认是隐藏的,找不到的需要打开隐 ...

  9. CSS 基础面试题

    1 介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin 低版本IE盒子模型:宽 ...

  10. Linux入门——初识Linux

    Linux入门——初识Linux 摘要:本文主要说明了Linux是什么,Linux发展历史,以及同Linux系统有关的一些基本知识. 简介 操作系统 Linux系统同Windows系统.Mac系统一样 ...