[总结]板子整理——第二弹
我这里列举了一些相比于之前整理的板子不太常用但有时候很有用的一些板子,以防忘记。
ST表,用于快速查询区间最值(O(nlogn)预处理O(1)查询)(但有线段树用什么ST表啊)。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<queue> using namespace std; const int maxn=3e5+5; inline int read() {int ret=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar();}while(c>='0'&&c<='9'){ret=ret*10+c-'0';c=getchar();}return ret*f; } int n,m; int num[maxn]; int d[maxn][23]; void make_st() {for(int j=1;j<=log2(n);j++)for(int i=1;i<=n;i++){d[i][j]=max(d[i][j-1],d[i+(1<<(j-1))][j-1]);} } inline int ask_maxx(int l,int r) {int k=log2(r-l+1);return max(d[l][k],d[r-(1<<k)+1][k]); } int main() {n=read(),m=read();for(int i=1;i<=n;i++){num[i]=read();d[i][0]=num[i];}make_st();int a,b;while(m--){a=read(),b=read();printf("%d\n",ask_maxx(a,b));}return 0; }
归并排序求逆序对,可以用于求最小交换次数或连续序列和计数问题
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<queue> using namespace std; const int maxn=4e4+5; int n,num[maxn]; int ans=0; int C[maxn]; void mergef(int l,int mid,int r) {int i=l,j=mid+1,k=l-1;while(i<=mid&&j<=r){if(num[i]>num[j]){ans+=mid-i+1;C[++k]=num[j++];}else C[++k]=num[i++];}while(i<=mid) C[++k]=num[i++];while(j<=r) C[++k]=num[j++];for(int p=l;p<=r;p++) num[p]=C[p]; } void mesort(int l,int r) {if(l==r) return;int mid=l+r>>1;mesort(l,mid);mesort(mid+1,r);mergef(l,mid,r); } int main() {scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&num[i]);}mesort(1,n);printf("%d\n",ans);return 0; }
欧拉筛(线性筛),比埃筛快一点。。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<queue> using namespace std; const int N=10000000+5; const int M=7e5+5; bool nopr[N]; int prime[M]; int tot=0; void shai(int r) {nopr[0]=nopr[1]=1;for(int i=2;i<=r;i++){if(!nopr[i]) prime[++tot]=i;for(int j=1;j<=tot;j++){if(i*prime[j]>r) break;nopr[i*prime[j]]=1;if(!(i%prime[j])) break;}} } int n,m; int main() {scanf("%d%d",&n,&m);shai(n);int x;for(int i=1;i<=m;i++){scanf("%d",&x);if(nopr[x]) printf("No\n");else printf("Yes\n");}return 0; }
快速幂。。没什么好说的吧。。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<queue> using namespace std; typedef long long ll; ll n,m,k,s; ll mod; ll ksm(ll x,ll y) {ll ret=1;while(y){if(y&1) ret*=x,ret%=mod;x*=x,x%=mod;y>>=1;}return ret; } int main() {scanf("%lld%lld%lld%lld",&n,&m,&k,&s);mod=n;ll ans=(s%mod+ksm(10,k)*m%mod)%mod;printf("%lld\n",ans%mod);return 0; }
扩欧,求不定方程等
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<queue> using namespace std; typedef long long ll; ll xp,yp,m,n,L; void exgcd(ll a,ll b,ll &x,ll &y) {if(!b){x=1;y=0;return;}exgcd(b,a%b,x,y);ll t=x;x=y;y=t-(a/b)*y; } ll gcd(ll a,ll b) {if(!b) return a;return gcd(b,a%b); } int main() {scanf("%lld%lld%lld%lld%lld",&xp,&yp,&m,&n,&L);if(m<n) swap(xp,yp),swap(m,n);ll a=m-n,b=L,c=yp-xp;ll d=gcd(a,b);if(c%d) {printf("Impossible\n");return 0;}else{ll x,y;a/=d,b/=d,c/=d;exgcd(a,b,x,y);ll ans=c*x;ans=(ans%b+b)%b;printf("%lld\n",ans);}return 0; }
转载于:https://www.cnblogs.com/loi-frank/p/7805030.html
[总结]板子整理——第二弹相关推荐
- 【图像处理算法常用数据集】整理第二弹
比上一弹([图像类算法常用数据集]整理第一弹_izzz_iz的博客-CSDN博客)列出的数据集更侧重训练(training)算法,数据集容量更加庞大. 目录 BSDS500 REDS DIV2K SI ...
- 【考研plog】目标院校整理第二弹-复试分数线篇
备注: 排名仍然不分先后 本篇仅整理分数线 为了对比,也收集了一些优秀院校的数据进行整理 筛选掉中科院的研究院. 数据截至2020/4/16,部分院校院线还没出 一.北理工 备注:北理工数学与统计学院 ...
- ART-PI调试记录----重力感应无线智能小车第二弹之OneNet+板载wifi控制电机转动
ART-PI-重力感应无线智能小车第二弹-----OneNet+板载wifi控制电机转动 雷德斯 and枕头们,好久不见,大家是不是更优秀了呢,哈哈,工作太忙啦,夜里肝一篇,大家久等啦,话不多说,来, ...
- 计算机导论的平时分多少,学霸养成 | 大一期末考试经验第二弹,千万别错过!...
原标题:学霸养成 | 大一期末考试经验第二弹,千万别错过! 计算机导论.军理和思修的期末考试经验在这里,看完别忘了点击"阅读原文"呦~ 计算机导论 其实<计算机导论>是 ...
- Google I/O开发者大会第二弹之未来
真是后悔昨天起名字叫第一弹了,这意味着今天还得给你们更新第二弹,第三弹--导弹和原子弹,就差核爆炸了.未来是美好的, 怎么会核爆炸呢?来跟着我一起走进未来. 来,一起听我口令:请大家带上Daydrea ...
- Compose跨平台第二弹:体验Compose for Web
前言 在Compose跨平台第一弹:体验Compose for Desktop 中,我们已经了解了Compose-jb以及如何使用Compose-jb开发简单的桌面端应用,第二弹,我们就来了解下如何使 ...
- 开源 | 蚂蚁金服分布式中间件开源第二弹:丰富微服务架构体系
小蚂蚁说: 数据.消息.微服务是蚂蚁金服自主研发的金融级分布式中间件 SOFA (Scalable Open Financial Architecture)的三大方向. 一个多月前,蚂蚁金服开源了 S ...
- 李飞飞AI100报告第二弹,提出14大AI机遇与挑战,82页pdf
来源:Stanford 编辑:好困 David 「AI100」报告第二弹! 本次报告评估了2016年至2021年间人工智能的发展,涵盖14大问题,探讨了人工智能发展的关键领域. 主题是「人工智能在日常 ...
- MaxCompute - ODPS重装上阵 第二弹 - 新的基本数据类型与内建函数
MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务. MaxCompute除了持续优化性能外,也致力于提 ...
- 培训第二弹:全国大学生智能汽车竞赛百度竞速组预告
§01 竞赛培训 3月12日本周六晚7点,百度飞桨B站直播间,第十七届全国大学生智能汽车竞赛完全模型组竞速赛第二次线上培训正式开讲! ▲ 图1 卓老师前来百度科技园"检查作业" ▲ ...
最新文章
- Sklearn(v3)——朴素贝叶斯(1)
- DL之GANDCGNNcGAN:GANDCGNNcGAN算法思路、关键步骤的相关配图和论文集合
- 蓝队视角下的企业安全运营
- 视觉盛宴篇!推荐 12 个好用的 CSS 的开源项目,YYDS !
- boost::filesystem模块打印文件状态的测试程序
- 基于Delphi的接口编程入门
- 架构必备「RESTful API」设计技巧经验总结
- 15-3 并发调度器
- linux中 ECShop的文件不能写
- Js查找数组中元素的位置
- vfp复制表结构_有关VFP表的问题
- 学习用于视觉跟踪的深度紧凑图像表示Learning a Deep Compact Image Representation for Visual Tracking
- 芯烨 XP-C76II+ 打印机驱动
- 001如何将灰度视频处理为伪彩色
- 计算机二进制存储单位,计算机中的存储单位你清楚吗
- mysql求回购率_用户行为分析——回购率、复购率(SQL、Python求解)
- android 电话号码发iphone怎么样,安卓手机如何轻松的向iPhone发文件呢?
- 项目二 管理与维护Linux系统
- apollo学习之---基础知识点学习(1)commen_math
- 计算菜价python
热门文章
- dnSpy - 一款 .NET 程序逆向工具
- 《腾讯iOS测试实践》一一1.8 小结
- C++容器(一)——vector
- php autoload 性能,PHP __autoload()方法真的影响性能吗?
- 开关造成的毛刺_解决交易中的毛刺问题,你可以这样做
- linspace函数matlab_MATLAB用不同颜色绘制多条曲线
- python输出10行带标号的hello、world_Python输出hello world(各行命令详解)
- android依赖alert样式,Android - AlertDialog样式
- xcode 获取模拟器app沙盒路径_使用Xcode12进行App内购测试
- testlink匹配mysql8_TestLink与RedMine连接部署说明