Acwing蓝桥杯集训题解week3

news/2025/3/22 13:42:15/文章来源:https://www.cnblogs.com/guiyou/p/18784219

炮弹

按照题意模拟:
注意两点:
1.死循环,如果存在两个能量为0跳板,就会互相弹跳,停不下来,设置一个合理的循环上限,防止超时
2.时间复杂度:在最坏的情况下
k最开始为1,跳n次,k为2时,跳2/n次.....
所以在最坏的情况下时间复杂度\(O(\sum_{i=1}^{n}\frac{n}{i})=O(nlnn)\)是调和级数的时间复杂度

点击查看代码
#include<bits/stdc++.h>using namespace std;int n,s;
const int maxn=1e5+10;
struct node{int q,v;
}e[maxn];
int nex=1;
int ans=0;
bool flag[maxn];
int check[maxn][3];
int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n>>s;for(int i=1;i<=n;++i) cin>>e[i].q>>e[i].v;bool book=1;int cnt=0;while(s>=1  && s<=n && cnt<=n*26){//    cout<<s<<endl;if(e[s].q==0){book=!book;nex+=e[s].v;}else {if(e[s].v<=nex && flag[s]==0)++ans,flag[s]=1;}s+=book?nex:(-1)*nex;++cnt;}    cout<<ans<<endl;return 0;
}

平衡细菌

差分好题:

一旦从差分的角度思考该问题就相当简单,
\([l,n]\)依次加n-l,n-l+1,....,n
从差分的角度,差分数组b[l+1,n]的均+1
再差分一次,差分数组c[l]++和c[n+1]--

那么题意转化成差分的形式就是,经过多少次操作后,a全部为0,同时b全部为0,也就是c全部为0
所以操作一次对c数组的影响就是c[l]++,因此答案就是c数组的总和

注意因为有可能加的也是负数,我们统计c中数值取绝对值

点击查看代码
#include<bits/stdc++.h>using namespace std;#define int long long 
const int maxn=2e5+10;
int n;
int a[maxn];
int b[maxn];
int c[maxn];
signed main(){cin>>n;for(int i=1;i<=n;++i) cin>>a[i];int ans=0;for(int i=1;i<=n;++i){b[i]=a[i]-a[i-1];c[i]=b[i]-b[i-1];ans+=abs(c[i]);}cout<<ans<<endl;return 0;}

回文游戏

思维题

谁先取完,谁赢

首先可以知道的是0 ~ 9肯定是回文数,所以轮到一个的数字是0~9时,就赢了

对于博弈的过程,每个人都想赢,所以不会想着取一个很大回文数,因为这样结果是很随机,没有把握,所以每个人尽量选择,一个0 ~ 9的数

对于一个末尾不是0的数,那么贝尔可以选取石使得末尾为0,埃尔希就会任意选择一个不为0且不大于9的数,如此轮回,最后贝尔会使石头变为0,赢得胜利,反之埃尔希赢

点击查看代码
#include<bits/stdc++.h>using namespace std;
int t;int n;
string s;
void solve(){cin>>s;    if(s[s.length()-1]=='0') puts("E");else puts("B");return ;}
int main(){cin>>t;while(t--){solve();}return 0;
}

牛奶交换

最麻烦的事情,这是个环,需要特别注意

只有出现RL的时候,牛奶会在这两个捅之间循环,R左边的牛奶都会过来,L右边的牛奶也都会过来,记录每一边的牛奶,如果比时间少,那么全都损失,如果比时间多,那么只会损失时间数量的牛奶

点击查看代码
#include<bits/stdc++.h>using namespace std;
long long  n,m;
string s;const int maxn=2e5+10;
long long a[maxn];
long long ans=0,tot=0;
int main(){cin>>n>>m;cin>>s;s=" "+s;for(int i=1;i<=n;++i) cin>>a[i],tot+=a[i];long long sum1=0,sum2=0;bool book=0;for(int i=1;i<n;++i){if(s[i]=='R' && s[1+i]=='L') book=1;if(s[i]=='L' && s[i+1]=='R') book=1;}if(!book){cout<<tot<<endl;return 0;}for(int i=1;i<=n;++i){if(s[i]=='R' && s[(i)%n+1]=='L'){int j=i-1;while(s[j]=='R'){sum1+=a[j];--j;if(j==0) j=n;}j=i%n+2;while(s[j]=='L' && j<=n){sum2+=a[j];++j;if(j==n+1) j=1;}ans+=min(sum1,m)+min(sum2,m);sum1=0,sum2=0;}}cout<<tot-ans<<endl;return 0;
}

最大限度地提高生产力

由于时间的数据范围不大,我们可以直接用后缀和预处理某个时刻之后还开着的农场,查询时就可以以O(1)的时间查询还开着的农场

点击查看代码
#include<bits/stdc++.h>using namespace std;
int n,q;
const int maxn=2e6+10;
int t[maxn],c[maxn];
int sum[maxn];int v,s;
int main(){cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);memset(sum,0,sizeof(sum));cin>>n>>q;for(int i=1;i<=n;++i) cin>>c[i];for(int i=1;i<=n;++i){cin>>t[i];if(c[i]-t[i]-1>=0)sum[c[i]-t[i]-1]++;}for(int i=2e6;i>=0;--i) sum[i]+=sum[i+1];while(q--){cin>>v>>s;if(sum[s]>=v) puts("YES");else puts("NO");}return 0;
}

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

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

相关文章

WebSocket系列 注册 @ServerEndpoint类失败

WebSocket系列—注册 @ServerEndpoint类失败 目录WebSocket系列—注册 @ServerEndpoint类失败一、问题背景二、寻找问题三、解决问题3.1、自己定义的切面3.2、外部框架的切面四、参考博客五、WebSocket系列地址 一、问题背景 博主最近分到后端主动推送报警业务,调研了一圈(轮…

实验1 C语言输入输出和简单程序编写补充

任务二:判断它能否构成三角形 #include <stdio.h> int main(){ double a, b, c; scanf_s("%lf%lf%lf", &a, &b, &c); if ((a + b > c) && (a + c > b) && (b + c > a)) printf("能构成三角…

ASE15N45-ASEMI智能家居专用ASE15N45

ASE15N45-ASEMI智能家居专用ASE15N45编辑:ll ASE15N45-ASEMI智能家居专用ASE15N45 型号:ASE15N45 品牌:ASEMI 封装:TO-220 批号:最新 最大漏源电流:15A 漏源击穿电压:450V RDS(ON)Max:0.38Ω 引脚数量:3 沟道类型:N沟道MOS管、中低压MOS管 漏电流:ua 特性:N沟道M…

什么是RabbitMQ入门

一.什么是RabbitMQ 中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必须要有一个通信中间件,即中间件=平台+…

使用BL0937 IC进行交流电源监控

一个简单的电路来监测交流电源,接线板可以插在任何地方,显示电压,电流和功率。交流电源监控是当今物联网相关应用中的一个惊人功能,例如智能风扇,开关和板。一些优秀的公司董事会在他们的产品中实施了这项技术,并持续监控供应的输出功率。在本地设备层面监控电源有其自身…

20244224 实验一《Python程序设计》实验一报告

课程:《Python程序设计》 班级: 2442 姓名: 旦曾央京 学号:20244224 实验教师:王志强 实验日期:2025年3月18日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能; 3.编写程序,练习变量和类型、字符串、对象、缩进和注释等; 4.编…

【智慧构造题】CF1427E Xum

我们发现这个原数为奇数的条件比较神秘,于是我们考虑每次把这个数字第一位 \(1\) 给干了。 考虑怎么构造。 令 $d=\lfloor \log_2 x \rfloor $ 令 \(x=1abc1\) \(x1=1abc10000\) \(x2=1abc0abc1\) \(x3=x2+x1=1abc01abc1\) \(x4=x ⊕ x3=1abc000000\) \(x5=x1+x1=1abc100000…

DataGrip结果运行在代码区域

DataGrip运行过后发现运行的结果在代码区域解决方式进入设置界面 点击左上角File(文件)->settings(设置) 搜索栏输入results或output and results 找到下面的设置界面 找到Results下的 Show results in editor ,取消勾选

我们接着创建项目中的app

在pycharm中运行以下代码python manage.py startapp teslaapp运行后呢会在目录中在创建一个名字叫teslaapp的包接着我们还需要在项目Tesla包中的setting文件中 添加我们刚创建的app名称

CMU_15445_Project4_BonusTask_Serializable_Verification

Serializable Verification 我们知道 MVCC 并不能解决幻读以及写偏差的问题, 仅通过 MVCC 的事务调度是无法保证数据库引擎的 ACID 原则的, 那么为了保证数据库的 ACID 原则, 即使在调度的过程中无法保证, 可以通过在 Commit 的时候, 通过验证, Abort 可能造成写偏差于幻读的事…

使用低代码平台设计UI

由于自己不是专业的设计师,就自己简单画个UI界面,那么就可以用到下面的低代码平台 http://120.92.142.115:81/vform3/ 里面可以选择体验vue3模板 进入下面图中的设计界面可以自己拖动组件 修改组件展示给用户的标签名称 以及数据传输时发送的字段名称 可以设置是否必填 默认值…

使用 Hosting 构建 WPF 程序 - prism 篇

WPF + .NET Generic Host + Prism + CommunityToolkit.Mvvm在 使用 Hosting 构建 WPF 程序 - Stylet 篇 中,使用 Hosting + Stylet 的方式,构建了一个 WPF 框架, 本文用于记录使用 .NET Generic Host + Prism 构建 WPF 所需的修改,仅供参考。 示例代码:Jasongrass/Demo.Ap…