CF451B
题目简化和分析:
这题就是判断将一段翻转后是否能变为升序的数组。
我的方法是保存原数组每一个数出现的位置(相同任意一个),让后另外用一个数组存储排好序后的原数组,逐一进行比较。
- 若同,则跳到下一个元素比较继续。
- 若不同,枚举当前位置到排序数组当前元素在原数组中的位置,时候一直为降序。
- 若多次出现不同,则跳出循环,立即输出。
- 特别的,若一直相同任意输出相同的左端点和右端点,但保证是合法范围内的。
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的更多相关文章
- CF451B Sort the Array 水题
Codeforces Round #258 (Div. 2) Sort the Array B. Sort the Array time limit per test 1 second memory ...
随机推荐
- OOP4-6题目集总结
4-6次题目集,从集合框架,正则表达式,类的继承与多态三个方面展开,在帮助我们了解java常用的工具(集合框架,正则表达式)的同时让我们学着利用类与类之间的关系来减少耦合,第六次题目集侧重于类的继承与 ...
- 微服务bug之:openFeign远程调用返回类型转换异常
楼主是在使用easyexcel导出的时候,获取数据出现这个错误,因为Spring底层是这样处理的使用LinkedhashMap来承接查询结果,导致转换异常 public List<NeedAll ...
- AI-3线性回归
3.1笔记 线性回归假设y与多个x之间的关系是线性的,且噪声符合正态分布. 线性模型则是对输入特征做仿射变换Y^ = W * X+b,其中Y^为预测值,我们希望预测值与真实值Y的误差最小.那如何衡量这 ...
- Oracle sql 错误 : ORA-01861: 文字与格式字符串不匹配和日期与字符串互转问题解决
正确的要这样的: public int update(String ceratedate); <update id="update" parameterType=" ...
- Spring Boot 日志文件
Spring Boot 日志文件 日志文件是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志.具有处理历史数据.诊断问题的追踪以及理解系统的活动等重要作用. 事件日志记录系统的执行中 ...
- python学习--采集弹幕信息
# -*- coding: utf-8 -*-"""Created on Mon Nov 4 12:00:12 2019 @author: DELL"" ...
- 论文日记二:VGG
1. 导读 前面我们回顾了AlexNet,AlexNet的作者指出模型的深度很重要,而VGG最大的贡献就在于对网络模型深度的研究. VGG原论文:<Very Deep Convolutional ...
- ASP.NET MVC4 学习笔记-3
创建一个简单的数据录入程序--Create a Simple Data-Entry Application 在这篇博客中,我们将通过创建一个简单的数据录入程序来探索MVC的其他特点.在这一节中我们要跟 ...
- Java计算日期之间相差时间和解决浮点类型精度过长
计算日期之间相差 此处相差计算以分钟为单位,自行可根据业务场景更改 /** * 测试时间相差分钟 */ @Test public void getTime() { SimpleDateFormat s ...
- Nextcloud登录界面输入用户名和密码后报内部故障
查询~/nextcloud/data/nextcloud.log,找到日志报出如下错误 "Something is wrong with your openssl setup: error: ...