CF1951
A
link

这个题就是讨论。
首先,如果没有\(1\)就一定可以。
如果有\(1\)。
如果长度为\(2\)一定不行。
\(1\)的个数为奇数不行。
如果为偶数
有一个小点:如果是\(2\)个\(1\)且连在一起,不行,因为不能开相邻的。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int t;
int n;
char a[55];
void qwq(){
cin >> n;
int g = 0;
for(int i = 1;i <= n;++ i){
cin >> a[i];
if(a[i] == '1') g++;
}
if(g == 0) cout << "YES\n";
else{
if(n == 2) cout << "NO\n";
else{
if(g%2) cout << "NO\n";
else{
if(g == 2){
for(int i = 1;i <= n;++ i){
if(a[i] == '1'&&
a[i-1] == '1'){
cout << "NO\n";
return;
}
}
cout << "YES\n";
}
else cout << "YES\n";
}
}
}
}
signed main(){
cin >> t;
while(t--) qwq();
return 0;
}
B
link

首先,肯定不往后换。
其次,如果它前面有比它大的数,肯定一场也赢不了。
所以,我们要换到它前面第一个比它大的位置,设为\(x\)。
还有一种可能,换到\(1\),那么到\(x\)这个位置就会停,但是如果\(1\)~\(x\)比\(x\)到下一个大于它的数长度大,就可以选\(1\)。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int t;
int n,k;
int a[100005];
int b[100005];
int qzh[100005];
int qiuzhi(int x){
swap(a[x],a[k]);
int ans = 0;
if(qzh[x-1] < a[x]){
for(int i = x+1;i <= n;++ i){
if(a[i] < a[x]) ans++;
else break;
}
if(x != 1) ans++;
}
swap(a[x],a[k]);
return ans;
}
void qwq(){
cin >> n >> k;
for(int i = 1;i <= n;++ i){
cin >> a[i];
qzh[i] = max(qzh[i-1],a[i]);
b[i] = a[i];
}
int w = k;
for(int i = 1;i < k;++ i)
if(a[i] > a[k]){
w = i;
break;
}
int ans = qiuzhi(w);
ans = max(ans,qiuzhi(1));
cout << ans << endl;
}
signed main(){
cin >> t;
while(t--) qwq();
return 0;
}
随机推荐
- 谁说爬虫只能Python?看我用C#快速简单实现爬虫开发和演示!
前言:说到爬虫,基本上清一色的都知道用Python,但是对于一些没玩过或者不想玩Python的来说,却比较头大一点.所以以下我站在C# 的角度,来写一个简单的Demo,用来演示C# 实现的简单小爬虫. ...
- 春松客服入驻Rainbond开源应用商店
"做好开源客服系统" 春松客服是拥有坐席管理.渠道管理.机器人客服.数据分析.CRM 等功能于一身的新一代客服系统.将智能机器人与人工客服完美融合,同时整合了多种渠道,结合 CRM ...
- java中判断String类型为空和null的方法
1.判断一个String类型的变量是否为空(即长度为0)或者为null 在Java中,判断一个String类型的变量是否为空(即长度为0)或者为null,通常需要使用两个条件语句来进行检查.这是因为n ...
- BOM弹窗 滚动条
// window.alert('弹出内容') 警告框 // window.prompt('弹出内容') 输入框 // 以 字符串 形式 存储输入 ...
- v-once指令 v-if和v-show
v-once指令 只渲染元素和组件一次,之后元素和组件将失去响应式功能 v-if和v-show 根据表达式的布尔值(true/false)进行判断是否渲染该元素 注:v-if 有更高的切换开销,而 v ...
- vue排行榜 加单位
- 重学前端 - react 项目第一节:创建react 项目
重学前端 - react 项目第一节:创建react 项目 简介:之前一直使用的都是 vue 全家桶开发项目,现在在新的项目上开始使用react开发. 现在开始在重新学习一下 react 相关技术. ...
- Unity 编辑器中获取选中的文件夹、文件路径
编辑器中获取选中的文件夹.文件路径 using UnityEditor; using UnityEngine; using Object = UnityEngine.Object; public cl ...
- spring与设计模式之四适配器模式
一.定义 适配器模式-或者称为转接口模式,变压器模式.通过适配,可以让原来提供特定功能的对象完成另外一个标准的功能. 所以,所谓的适配应该可以这样称呼:让某些类/接口适配/转换某个标准/功能. 适配器 ...
- anaconda里虚拟环境安装jupyter notebook
安装jupyter notebook 打开anaconda prompt,进入虚拟环境 conda activate Pytorch_learning 下载安装jupyter notebook con ...