CF1197B

题意:

出n个柱子,每个柱子一个圆盘,其半径各不相同,每次只能将柱子上只有一个圆盘的移到相邻位置,问能否全部移到一个柱子上。

解法:

思路题。

如果所有盘子都能移动到同一个柱子上,那么有两种情况:

1.整个序列单调递增或单调递减

2.序列中的每一个位置前面的元素单调递增,后面的元素单调递减

然后根据这两条性质判断即可。

CODE:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm> using namespace std; #define LL long long
#define N 200010 int n,a[N],pos; int main() {
scanf("%d",&n);
for(int i = 1 ; i <= n ; i++)
scanf("%d",&a[i]);
for(int i = 1 ; i <= n ; i++) {
if(a[i] > a[pos]) pos = i;
}
for(int i = pos ; i >= 2 ; i--) {
if(a[i] < a[i - 1]) {
puts("NO");
return 0;
}
}
for(int i = pos ; i < n ; i++) {
if(a[i] < a[i + 1]) {
puts("NO");
return 0;
}
}
puts("YES");
//system("pause");
return 0;
}

CF1197B的更多相关文章

随机推荐

  1. 十一、微信小程序-var、let、const用法详解

    let命令 基本用法 ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ...

  2. opencv-04--图像金字塔

    图像金字塔被广泛应用于各种视觉应用中.图像金字塔是一个图像集合,集合中图像都源于同一个原始图像,而且是通过对原始图像连续降采样获得,直到达到某个中止条件才停止降采样.(当然,降为一个像素肯定是中止条件 ...

  3. g++ 生成C++ .so库文件,并调用示例

    Tags: g++ C++ so library   在Linux系统下用g++命令编译C++程序.也可以生成so,a链接库   示例一 编译时链接so库 Test.h 文件内容   Main.cpp ...

  4. 原生js上传图片遇到的坑(axios封装)

    后台给我写了一个上传图片的接口,自己用form表单测试成功 接口可以正常跳转 测试的代码: <!doctype html> <html lang="en"> ...

  5. Layui 实现input 输入和选择

    <div class="layui-col-md4"> <label class="layui-form-label">移交单位< ...

  6. Manifold learning 流形学习

    Machine Learning 虽然名字里带了 Learning 一个词,让人乍一看觉得和 Intelligence 相比不过是换了个说法而已,然而事实上这里的 Learning 的意义要朴素得多. ...

  7. 三年总结出来的11个JPA和Hibernate查询配置小技巧

    JPA和Hibernate提供了一系列暗示hints能够帮助你更好地定制你的查询语言,这些小暗示或暗语是一种附加信息,你可以利用这些暗语做很多事情,比如设置查询的timeout,使用实体图或定义查询缓 ...

  8. Linux命令——cat、more、less、head、tail

    cat 一次显示整个文件 -n:显示行号 -b :和 -n 相似,只不过对于空白行不编号 -s:当遇到有连续两行以上的空白行,就代换为一行的空白行 -E显示换行符 [root@localhost ~] ...

  9. Linux基本命令-chmod

           chmod命令用来变更文件或目录的权限.在UNIX系统家族里,文件或目录权限的控制分别以读取.写入.执行3种一般权限来区分,另有3种特殊权限可供运用.用户可以使用chmod指令去变更文件 ...

  10. java 接口方法超时异常处理 设置超时时间

    原文:https://blog.csdn.net/coding_1994/article/details/87728374 使用线程池另起一个线程,可以使用  newFixedThreadPool() ...