码蹄集部分题目(2024OJ赛17期;二分+差分+ST表+单调队列+单调栈)

1🐋🐋小码哥处理订单(钻石;二分+差分)

时间限制:1秒

占用内存:128M

🐟题目描述

🐟题目思路

【码蹄集进阶塔全题解07】算法基础:二分 MT2070 – MT2079_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
const int N=1e6+10;
int n,m,r[N],d[N],s[N],t[N],sub[N],need[N];
int le,ri,mid,ans;
​
bool check(int num)
{memset(sub,0,sizeof(sub));for(int i=1;i<=num;i++){sub[s[i]]+=d[i];sub[t[i]+1]-=d[i];}for(int i=1;i<=n;i++){need[i]=need[i-1]+sub[i];if(need[i]>r[i]) return true;}return false;
}
​
int main( )
{cin>>n>>m;for(int i=1;i<=n;i++) cin>>r[i];for(int i=1;i<=m;i++) cin>>d[i]>>s[i]>>t[i];le=1,ri=m;if(!check(m)){cout<<0<<endl;return 0;}while(le<=ri){mid=le+(ri-le)/2;if(check(mid)) {ri=mid-1;ans=mid;}else le=mid+1;}cout<<"-1"<<endl;cout<<ans<<endl;return 0;
}

2🐋🐋礼物(钻石;二分)

时间限制:1秒

占用内存:128M

🐟题目描述

🐟题目思路

【码蹄集进阶塔全题解07】算法基础:二分 MT2070 – MT2079_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
int cnt1,cnt2,x,y;
​
bool check(int num)
{if(num-num/(x*y)<cnt1+cnt2) return 0;if(num-num/x<cnt1) return 0;if(num-num/y<cnt2) return 1;return 1;
}
​
int main( )
{cin>>cnt1>>cnt2>>x>>y;int l=1,r=2e9;int ans,cnt=0;while(l<=r){int mid=l+(r-l)/2;if(check(mid)) {r=mid-1;ans=mid;}else l=mid+1;}cout<<ans<<endl;return 0;
}

🧀🧀🧀ST表

ST表(Sparse Table)是一种用于高效处理区间查询的数据结构。它可以在O(1)的时间复杂度内回答某一区间的最值查询(最小值、最大值等)。ST表使用动态规划的思想,通过预处理的方式来快速计算出各个区间的最值。

推荐这篇:ST表(保姆级,简单易懂)-CSDN博客

3🐋🐋区间按位与(钻石;ST表)

时间限制:2秒

占用内存:64M

🐟题目描述

🐟题目思路

MT3049 区间按位与_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
const int N=2e5+10;
int m,n,a[N],mn[N][50],Lg[N],ans;
​
void pre()
{Lg[1]=0;for(int i=2;i<=n;i++) Lg[i]=Lg[i>>1]+1;
}
​
void ST_create()
{for(int i=1;i<=n;i++) mn[i][0]=a[i];for(int j=1;j<=Lg[n];j++){for(int i=1;i<=n-(1<<j)+1;i++) mn[i][j]=mn[i][j-1]&mn[i+(1<<(j-1))][j-1];}
}
​
int ST_query(int l,int r)
{int k=Lg[r-l+1];return mn[l][k]&mn[r-(1<<k)+1][k];
}
​
int main( )
{ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];pre();ST_create();while(m--){int a1,a2;cin>>a1>>a2;cout<<ST_query(a1,a2)<<'\n';//cout endl会超时}return 0;
}

4🐋🐋区间按位或(钻石;ST表)

时间限制:2秒

占用内存:128M

🐟题目描述

🐟题目思路

MT3048 区间按位或_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
const int N=2e5+10;
int m,n,a[N],mn[N][50],Lg[N],ans;
​
void pre()
{Lg[1]=0;for(int i=2;i<=n;i++) Lg[i]=Lg[i>>1]+1;
}
​
void ST_create()
{for(int i=1;i<=n;i++) mn[i][0]=a[i];for(int j=1;j<=Lg[n];j++){for(int i=1;i<=n-(1<<j)+1;i++) mn[i][j]=mn[i][j-1] | mn[i+(1<<(j-1))][j-1];}
}
​
int ST_query(int l,int r)
{int k=Lg[r-l+1];return mn[l][k] | mn[r-(1<<k)+1][k];
}
​
int main( )
{ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];pre();ST_create();while(m--){int a1,a2;cin>>a1>>a2;cout<<ST_query(a1,a2)<<'\n';//cout endl会超时}return 0;
}

5🐋🐋松鼠接松果(钻石;单调队列)

时间限制:1秒

占用内存:128M

🐟题目描述

🐟题目思路

MT3045 松鼠接松果_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
const int N=1e5+10;
int n,D,ans=0x3f3f3f3f;
struct POS
{int x,y;bool operator<(const POS &t) const {return x<t.x;}
}p[N];
deque<int> maxm,minm;
​
int main( )
{scanf("%d %d",&n,&D);for(int i=1;i<=n;i++) scanf("%d %d",&p[i].x,&p[i].y);sort(p+1,p+1+n);int L=1;for(int i=1;i<=n;i++){while(!maxm.empty()&&p[maxm.back()].y<p[i].y) maxm.pop_back();maxm.push_back(i);while(!minm.empty()&&p[minm.back()].y>p[i].y) minm.pop_back();minm.push_back(i);while(L<i&&p[maxm.front()].y-p[minm.front()].y>=D){ans=min(ans,p[i].x-p[L].x);L++;while(!maxm.empty()&&maxm.front()<L) maxm.pop_front();while(!minm.empty()&&minm.front()<L) minm.pop_front();}}if(ans==0x3f3f3f3f) printf("-1\n");else printf("%d\n",ans);return 0;
}

单调栈做法:

#include<bits/stdc++.h> 
​
using namespace std;
const int maxn=1e5+10;
int q1[maxn],q2[maxn];
struct node
{int loc,h;
}Node[maxn];
bool cmp(node a,node b) {return a.loc<b.loc;}
​
int main( )
{int N,D;scanf("%d %d",&N,&D);for(int i=1;i<=N;i++) scanf("%d %d",&Node[i].loc,&Node[i].h);sort(Node+1,Node+1+N,cmp);int l=1,r=1;q1[0]=-1e9;q1[1]=Node[1].h;q2[1]=Node[1].loc;int min_=1e9;for(int i=2;i<=N;i++){for(int j=r;j>=l;j--){if(Node[i].h-q1[j]>=D){min_=min(min_,Node[i].loc-q2[j]);break;}}r+=1;while(r>=l){if(q1[r-1]<Node[i].h){q1[r]=Node[i].h;q2[r]=Node[i].loc;break;}else r--;}}for(int i=1;i<=N/2;i++){swap(Node[i].h,Node[N-i+1].h);swap(Node[i].loc,Node[N-i+1].loc);}l=1,r=1;q1[0]=-1e9;q1[1]=Node[1].h;q2[1]=Node[1].loc;for(int i=2;i<=N;i++){for(int j=r;j>=l;j--){if(Node[i].h-q1[j]>=D){min_=min(min_,-Node[i].loc+q2[j]);break;}}r+=1;while(r>=l){if(q1[r-1]<Node[i].h){q1[r]=Node[i].h;q2[r]=Node[i].loc;break;}else r--;}}if(min_==1e9) printf("-1");else printf("%d",min_);return 0;
}

6🐋🐋排序(星耀;单调栈)

时间限制:1秒

占用内存:256M

🐟题目描述

🐟题目思路

MT3043 排序_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
#define int long long
const int N=2e5+5;
int n,m,a[N],b[N],top;
struct node
{int k,x;
}st[N];
signed main( )
{cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];b[i]=a[i];}while(m--){int k,x;cin>>k>>x;while(top&&st[top].x<=x) top--;st[++top]={k,x};}int nn=st[1].x;sort(b+1,b+1+nn);int l=1,r=nn;st[top+1].x=0;for(int i=1;i<=top;i++){int t=st[i].x-st[i+1].x;if(st[i].k==1){while(t--) a[nn--]=b[r--];}else{while(t--) a[nn--]=b[l++];}}for(int i=1;i<=n;i++) cout<<a[i]<<" ";return 0;
}

抱歉uu们,这周有些不太舒服,没有给大家写题解,大家可以先看看视频的讲解,后续有机会我再补一下这期的题解~

有问题我们随时评论区见~

⭐点赞收藏不迷路~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/845147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Element ui 快速入门(基础知识点)

element ui官网 前言&#xff1a; 在当今时代&#xff0c;我们在编写计算机程序时&#xff0c;不仅仅是写几个增删改查的简单功能&#xff0c;为了满足广大用户对页面美观的需求&#xff0c;为了让程序员们写一些功能更简便&#xff0c;提高团队协作效率&#xff0c;所以eleme…

python操作mongodb底层封装并验证pymongo是否应该关闭连接

一、pymongo简介 github地址&#xff1a;https://github.com/mongodb/mongo-python-driver mymongo安装命令&#xff1a;pip install pymongo4.7.2 mymongo接口文档&#xff1a;PyMongo 4.7.2 Documentation PyMongo发行版包含Python与MongoDB数据库交互的工具。bson包是用…

【Python】解决Python报错:AttributeError: ‘int‘ object has no attribute ‘xxx‘

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

RLC防孤岛保护装置如何工作的?

什么是RLC防孤岛保护装置&#xff1f; 孤岛保护装置是电力系统中一道强大的守护利器&#xff0c;它以敏锐的感知和迅速的反应&#xff0c;守护着电网的平稳运行。当电网遭遇故障或意外脱离主网时&#xff0c;孤岛保护装置如同一位机警的守门人&#xff0c;立刻做出决断&#xf…

Go微服务: 基于Docker搭建Kong网关环境

概述 在当今的微服务架构中&#xff0c;API网关扮演着至关重要的角色&#xff0c;它作为系统的统一入口负责处理所有内外部请求&#xff0c;实现路由转发、负载均衡、安全控制、限流熔断等多种功能Kong&#xff0c;作为一个开源、高性能、可扩展的API网关&#xff0c;凭借其强…

【机器学习】探索未来科技的前沿:人工智能、机器学习与大模型

文章目录 引言一、人工智能&#xff1a;从概念到现实1.1 人工智能的定义1.2 人工智能的发展历史1.3 人工智能的分类1.4 人工智能的应用 二、机器学习&#xff1a;人工智能的核心技术2.1 机器学习的定义2.2 机器学习的分类2.3 机器学习的实现原理2.4 机器学习的应用2.5 机器学习…

在PostGIS中检查孤线(Find isolated lines in PostGIS)

场景 在PostGIS中有一张线要素表,需要检查该表中的孤线,并且进行自动纠正的计算。 其中孤线定义为两端端点都不在任何其他线的顶点上。 本文介绍在PostGIS中的线要素点,通过函数计算指定线要素表中的孤线,并计算最接近的纠偏位置。 In PostGIS, there is a table of line …

GPT-4o(OpenAI最新推出的大模型)

简介&#xff1a;最近&#xff0c;GPT-4o横空出世。对GPT-4o这一人工智能技术进行评价&#xff0c;包括版本间的对比分析、GPT-4o的技术能力以及个人感受等。 方向一&#xff1a;对比分析 GPT-4o&#xff08;OpenAI最新推出的大模型&#xff09;与GPT-4之间的主要区别体现在响应…

268 基于matlab的模拟双滑块连杆机构运动

基于matlab的模拟双滑块连杆机构运动&#xff0c;并绘制运动动画&#xff0c;连杆轨迹可视化输出&#xff0c;并输出杆件质心轨迹、角速度、速度变化曲线。可定义杆长、滑块速度&#xff0c;滑块初始位置等参数。程序已调通&#xff0c;可直接运行。 268 双滑块连杆机构运动 连…

Github单个文件或者单个文件夹下载插件

有时候我们在github上备份了一些资料&#xff0c;比如pdf,ppt&#xff0c;md之类的,需要用到的时候只要某个文件即可&#xff0c;又不要把整个仓库的zip包下载下来&#xff0c;毕竟有时文件太多&#xff0c;下载慢&#xff0c;我们也不需要所有资料&#xff0c;那么就可以使用到…

i-am-a-bot:一款基于多个大语言模型的验证码系统安全评估工具

关于i-am-a-bot i-am-a-bot是一款基于多个大语言模型的验证码安全评估工具&#xff0c;该工具提供了一个使用了多模态大语言模型&#xff08;LLM&#xff09;的自动化解决方案&#xff0c;可以帮助广大研究人员测试各种类型验证码机制的安全性。 从底层上看&#xff0c;i-am-a…

renren-fast-vue启动报错

问题描述 拉取人人开源vue项目启动失败 报错信息 版本信息 序号名称版本号1node14.21.3 启动方案 1.拉取项目 git clone https://gitee.com/renrenio/renren-fast-vue.git 2.执行安装依赖命令 npm install 3.此时报错 chromedriver2.27.2 install: node install.js 4.手动…

安装与使用ChatTTS文本转语音模型

非常自然的文本转语音(Text To Speech)TTS&#xff0c;支持中英文混读&#xff0c;还可以穿插笑声&#xff0c;听起来很真实自然。 1、有哪些优点 对话式 TTS: ChatTTS针对对话式任务进行了优化&#xff0c;实现了自然流畅的语音合成&#xff0c;同时支持多说话人。细粒度控制…

老师如何使用小程序发成绩?

作为一名老师&#xff0c;你有没有想过&#xff0c;发成绩其实可以不用那么麻烦&#xff1f;以前&#xff0c;我们可能得一张张地写成绩&#xff0c;或者一封封邮件地发&#xff0c;有时候还得担心信息泄露。但现在&#xff0c;有了小程序&#xff0c;一切都变得简单多了。 老师…

连锁超市能源能效管理方案

1.概述 连锁超市的能源消耗是其运营成本的重要组成部分。有效的能源能效管理不仅可以降低运营成本&#xff0c;也有助于环保&#xff0c;实现可持续发展。本文将探讨几种关键的能源能效管理策略。 2.智能照明系统 采用智能照明系统是提高能效的关键一步。这些系统可以根据店…

【linux】自定义快捷命令/脚本

linux自定义快捷命令 场景自定义命令自定义脚本 场景 深度学习经常要切换到自己环境&#xff0c;conda activate mmagic&#xff0c;但是又不想每次重复打这么多字&#xff0c;想使用快捷命令直接切换。 自定义命令 使用别名&#xff08;alias&#xff09;或自定义脚本来创建…

先进的无人机GPS/GNSS模块解决方案

由于多星座支持和增强的信号接收能力&#xff0c;先进的GNSS模块提供了更高的精度和可靠性。集成传感器融合补偿信号中断&#xff0c;实现无缝导航。内置实时运动学(RTK)支持提供厘米级的定位精度。这些模块还优先考虑低功耗和紧凑的尺寸&#xff0c;确保更长的飞行时间和对无人…

【SpringMVC】_SpringMVC实现用户登录

目录 1、需求分析 2、接口定义 2.1 校验接口 请求参数 响应数据 2.2 查询登录用户接口 请求参数 响应数据 4、服务器代码 5、前端代码 5.1 登录页面login.html 5.2 首页页面index.html 6、运行测试 1、需求分析 用户输入账号与密码&#xff0c;后端校验密码是否正确&a…

【论文速读】Self-Rag框架,《Self-Rag: Self-reflective Retrieval augmented Generation》

关于前面的文章阅读《When to Retrieve: Teaching LLMs to Utilize Information Retrieval Effectively》&#xff0c;有网友问与Self-Rag有什么区别。 所以&#xff0c;大概看了一下Self-Rag这篇论文。 两篇文章的方法确实非常像&#xff0c;Self-Rag相对更加复杂一些。 When …

Mac逆向Electron应用

工具库 解压asar文件 第一步 找到应用文件夹位置 打开活动监视器&#xff1a; 搜索相关应用 用命令行打开刚才复制的路径即可 open Applications/XXX.app/Contents/Resources/app第二步 解压打包文件 解压asar文件