题目简化和分析:

这题就是判断将一段翻转后是否能变为升序的数组。

我的方法是保存原数组每一个数出现的位置(相同任意一个),让后另外用一个数组存储排好序后的原数组,逐一进行比较。

  • 若同,则跳到下一个元素比较继续。
  • 若不同,枚举当前位置到排序数组当前元素在原数组中的位置,时候一直为降序。
  • 若多次出现不同,则跳出循环,立即输出。
  • 特别的,若一直相同任意输出相同的左端点和右端点,但保证是合法范围内的。

Solution:

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef double db; const int N=1e5+50;
const int M=1e5+50;
const int Mod=1e9+7; inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
} int n;
int a[N],b[N]; map<int,int>pos; int main()
{
n=read();
for(int i=1;i<=n;++i) a[i]=read(),b[i]=a[i],pos[a[i]]=i;
sort(b+1,b+n+1);
int l=0,r=0;
bool flag=1;
for(int i=1;i<=n;){
if(a[i]==b[i]){
i++;
continue;
}
if(l!=0){
flag=0;
break;
}else{
l=i,r=pos[b[i]];
i=pos[b[i]]+1;
for(int j=l;j<r;++j){
if(a[j]<a[j+1]){
flag=0;
break;
}
}
if(!flag) break;
}
}
if(flag){
printf("yes\n");
if(l==0) l=r=1;
printf("%d %d\n",l,r);
}else{
printf("no\n");
}
return 0;
}

CF451B的更多相关文章

  1. CF451B Sort the Array 水题

    Codeforces Round #258 (Div. 2) Sort the Array B. Sort the Array time limit per test 1 second memory ...

随机推荐

  1. SSM项目整合思路以及代码

    当前真实的企业开发中,SpringBoot已经统一Java企业应用开发,很少有在使用SSM项目来进行项目开发的. 可是在教学阶段,还是很有必要给学生讲解Java开发中一套很经典的框架,SSM框架.作为 ...

  2. HCL 实验7:OSPF

    拓扑图 R1配置 [R1]int g0/1 [R1-GigabitEthernet0/1]ip add 192.168.4.1 24 [R1-GigabitEthernet0/1]undo shutd ...

  3. Vue-Element UI 文件上传与下载

    项目结构 后端 前端 效果演示 上传文件 下载文件 Code 后端代码 跨域 /** * 跨域配置 * @author Louis * @date Jan 12, 2019 */ @Configura ...

  4. OpenCV4之特征提取与对象检测

    1.图像特征概述 图像特征的定义与表示 图像特征表示是该图像唯一的表述,是图像的DNA 图像特征提取概述 传统图像特征提取 - 主要基于纹理.角点.颜色分布.梯度.边缘等 深度卷积神经网络特征提取 - ...

  5. 【工具推荐】github打不开or加载慢?不用配置hosts,教你一键加速!

    不说废话 下载watt toolkit(原名steam++) 官方地址: Watt Toolkit - 瓦特工具箱(Steam++官网) (steampp.net) 安装完后选中,点击一键加速即可. ...

  6. js中调用函数中的变量

    (function f1() { var num = 10; window.num = num;})(); console.log(num);

  7. 随风迎 jmeter下TPS插件的安装(转)

    1.下载插件http://pan.baidu.com/s/1mioVJni 2.解压下载的安装包: 将 jpgc-graphs-basic-2.0.zip 解压缩后只有一个 lib 目录,该目录下有一 ...

  8. 您在 /var/spool/mail/root 中有新邮件

    查看邮件 删除邮件 禁止系统启动邮件检查这样就再有邮件提示了 mail cat /dev/null > /var/spool/mail/root echo "unset MAILCHE ...

  9. Linux系统启动jmeter可视化界面

    目的:方便在Linux系统调试jmeter脚本.操作:Linux启动jmeter可视化界面,不能使用root用户,需要创建新用户,切换到新用户启动jmeter. 1. 创建用户 创建一个新的系统用户. ...

  10. 《SQL与数据库基础》12. SQL优化

    目录 SQL优化 数据插入 insert优化 大批量插入数据 主键优化 order by优化 group by优化 limit优化 count优化 count用法 update优化 本文以 MySQL ...