ABC352
A
link

\(x\)停不到,\(y\)能停到。
要先判断是从前往后还是从后往前。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
signed main(){
int n,x,y,z;
cin >> n >> x >> y >> z;
if(x <= y){
if(z > x&&z <= y) cout << "Yes";
else cout << "No";
}
else{
if(z < x&&z >= y) cout << "Yes";
else cout << "No";
}
return 0;
}
B
link

两个指针,分别指向\(S\)和\(T\),如果当前两个指针指向的位置一样,输出这个位置,否则把指向\(T\)的指针加一。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
char s[200005];
char t[200005];
signed main(){
cin >> s+1 >> t+1;
int n = strlen(t+1);
for(int i = 1,j = 1;i <= n;++ i,++j){
while(t[i] != s[j]) ++i;
cout << i << " ";
}
return 0;
}
C
link

他要求的本质上就是前面所有的肩膀高度加最后一个的头高。
所以我们只要把每中情况都找到即可,那么我们可以先把所有肩膀的高度加起来,然后枚举每一个,把肩膀减去,把头加上去最大即可。
点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
int x[200005],y[200005];
int cn,ans;
signed main(){
cin >> n;
for(int i = 1;i <= n;++ i){
cin >> x[i] >> y[i];
cn += x[i];
}
for(int i = 1;i <= n;++ i){
ans = max(ans,cn-x[i]+y[i]);
}
cout << ans;
return 0;
}
D
link

如果我们存一个数组\(mp_i\)表示第\(i\)个数在数组里的位置,那么我们就可以每取连续的\(k\)个数求最大值和最小值取差即可。(\(st\)表)
点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,k;
int p[200005];
int mp[200005];
int mx[200005][20];
int mn[200005][20];
int lg(int x){
if(x == 1) return 0;
return lg(x/2)+1;
}
signed main(){
cin >> n >> k;
for(int i = 1;i <= n;++ i)
cin >> p[i],mp[p[i]] = i;
for(int i = 1;i <= n;++ i)
mx[i][0] = mp[i],
mn[i][0] = mp[i];
for(int j = 1;j <= 19;++ j){
for(int i = 1;i+(1<<j)-1 <= n;++ i){
mx[i][j] = max(mx[i][j-1],
mx[i+(1<<(j-1))][j-1]);
mn[i][j] = min(mn[i][j-1],
mn[i+(1<<(j-1))][j-1]);
}
}
int ans = 0x3f3f3f3f;
int t = lg(k);
for(int i = 1;i+k-1 <= n;++ i){
int man = max(mx[i][t],
mx[(i+k-1)-(1<<t)+1][t]);
int mix = min(mn[i][t],
mn[(i+k-1)-(1<<t)+1][t]);
ans = min(ans,man-mix);
}
cout << ans << endl;
return 0;
}
随机推荐
- 解决idea 控制台输出乱码问题:
解决idea 控制台输出乱码问题[IntelliJ IDEA 2022.1.3 (Ultimate Edition)]: 将两个地方文件编码设置成GBK 参考文档:https://blog.c ...
- Swoole 源码分析之 Http Server 模块
首发原文链接:Swoole 源码分析之 Http Server 模块 Swoole 源码分析之 Http Server 模块 Http 模块的注册初始化 这次我们分析的就是 Swoole 官网的这段代 ...
- 20220314线上panic总结
panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentatio ...
- Android 12(S) Binder(三)
学以致用,这一节来native binder实战! android 12中的service用到的Bp.Bn文件多由aidl生成,所以实战中也用aidl来生成. 1.文件目录结构 文件目录结构如上,偷懒 ...
- 鸿蒙极速入门(二)-开发准备和HelloWorld
一.开发准备 本篇博客基于的系统版本:华为官方HarmonyOS版本3.1.OpenHarmony版本4.0Beta 开发语言 ArkTS语言(推荐) JS语言(支持) Java语言(已放弃支持) 从 ...
- sort awk 文本处理命令
sort: 1.将文件的每一行作为一个单位,相互比较 2.默认升序 3.以字符来进行对比,从首字符开始往后,依次按ASCII码值排序 sort 显示文件内容 (类似cat) 选项: -u 去掉重复行 ...
- 机器学习策略篇:详解如何改善你的模型的表现(Improving your model performance)
如何改善模型的表现 学过正交化,如何设立开发集和测试集,用人类水平错误率来估计贝叶斯错误率以及如何估计可避免偏差和方差.现在把它们全部组合起来写成一套指导方针,如何提高学习算法性能的指导方针. 所以想 ...
- 01-布局扩展-BFC完成圣杯布局
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- SCOI 回旋退役记
02.21 day -2 开始写了,期望这不是真的退役记吧.但是不是的概率好小-- 这几天一直考试,怎么说呢,到差不差的,也就那个样子. 归根结底,菜是原罪,和那些大佬相比我真的很很很菜啊.当时看 c ...
- .net6 asp.net core mvc 中使用NLog ILogger
1.用VS2022新建一个.NET6 MVC项目. 2.使用nuget引用NLog.Extensions.Logging. 3.项目中新建一个NLog.config配置文件,右键属性设置为" ...