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; }

随机推荐

  1. Vue cli之创建组件

    一般在开发中,我们会人为把组件分2个目录存放,一个代表的页面组件,另一个代表页面一部分的子组件. src/ |- views/ |- Home.vue |- components/ |- App.vu ...

  2. C# JObject.Add方法代码示例

    本文整理汇总了C#中Newtonsoft.Json.Linq.JObject.Add方法的典型用法代码示例.如果您正苦于以下问题:C# JObject.Add方法的具体用法?C# JObject.Ad ...

  3. Xcode 最近使用的一些问题

    1.上架的App如何测试推送? 苹果的证书分为开发证书和发布证书,上架AppStore的App应该使用发布证书进行配置,但是发布证书编译出包的App无法安装到手机上 只有一种方式,采用Ad hoc p ...

  4. react组件通信 父组件与子组件互相通信

    父组件将自己的状态传递给子组件,子组件当做属性来接收,当父组件更改自己状态的时候,子组件接收到的属性就会发生改变 父组件利用ref对子组件做标记,通过调用子组件的方法以更改子组件的状态,也可以调用子组 ...

  5. Android Media Framework(三)OpenMAX API阅读与分析

    这篇文章我们将聚焦Control API的功能与用法,为实现OMX Core.Component打下坚实的基础. 1.OMX_Core.h OMX Core在OpenMAX IL架构中的位置位于IL ...

  6. 国产搜索引擎崛起:Elasticsearch 国产化加速

    背景 多年来,Elasticsearch(简称:ES) 在搜索领域一直独占鳌头,其卓越的性能和广泛的应用深受国内众多企业的青睐.从查询搜索到数据分析,再到安全分析,Elasticsearch 均展现出 ...

  7. 机器学习决策树ID3算法,python实现代码

    机器学习决策树ID3算法,python实现代码 看到techflow介绍ID3算法,中间有代码示例.代码尝试执行力下,发现有错误. https://www.cnblogs.com/techflow/p ...

  8. C#.NET Framework 使用BC库(BouncyCastle) RSA 私钥签名 公钥验签(验证签名) ver:20230704

    C#.NET Framework 使用BC库(BouncyCastle) RSA 私钥签名 公钥验签(验证签名) ver:20230704 环境说明: .NET Framework 4.6 的控制台程 ...

  9. jsp和servlet的区别、共同点、各自应用的范围?

    JSP是Servlet技术的扩展,本质上就是Servlet的简易方式.JSP编译后是"类servlet".Servlet和JSP最主要的不同点在于: Servlet的应用逻辑是在J ...

  10. Thread交互及interrupt示例

    package com.test.docxml; /** Thread交互及interrupt示例 * 线程模拟:一个在睡觉,一个在敲墙,敲墙完成之后,把睡觉的吵醒了. */ public class ...