题干

Hemose 有一个 n 个整数的数组 a 。 他希望 Samez 以非降序对数组进行排序。由于这对 Samez 来说太简单了,因此 Hemose 允许 Samez 仅使用以下操作:
选择指数i,j: 1≤i,j≤n . 和 |i-j|≥X然后交换元素ai和aj。
你能告诉 Samez 是否有办法通过使用上面写的操作完成排序吗?
输入
测试用例的第一行包含两个整数 n 和 x
测试用例的第二行包含n整数 a1, a2 ,…, an
n<=1e5;
0<=x<=n
输出
如果 Samez 可以使用上面编写的操作以非递减顺序对数组进行排序,则输出“YES”(不带引号)。否则,输出“NO”(不带引号)。
样例输入
5 2
5 1 2 3 4
样例输出
YES

题意

输入两个整数:n、x;
输入一个长为 n 的数组,可执行下列命令:
当数组中元素的下标之差不小于 x 时,可以交换这两个位置的元素。
问是(YES)否(NO)可以通过执行上述命令,使数组非递减(单调增)排列。

思路

首先,如果我们可以交换任意两个位置的元素,一定可以完成非递减排列。
显然,当 x 足够大时,数组中间位置的元素无法与其它元素交换。
如 n = 5;x = 3 时,对于数组

a[i] 0 1 3 2 4
i 0 1 2 3 4

其中a[2]==3,但 a[2] 无法与数组中其它元素交换。可以发现,无论其他元素如何交换,均不能使数组 a 非递减排列。
推导可知,x > n/2 时,存在不能交换的元素。
此时可以记录无法交换的元素下标区间:[l, r] ,l = n-x,r = x-1。
然后对数组进行非降序排列:
若区间 [l, r] 中的元素值及位置没有发生改变,说明只交换此区间外的元素可以完成非递减排列,输出 YES;
若区间 [l, r] 中的元素及位置发生了改变,说明只有交换此区间内的元素才能完成排列,但我们不能交换这些元素,故输出 NO。

x <= n/2 时,可以交换任意两个元素,能实现非递减排列,输出 YES。

代码

#include <iostream>
#include <cstdio>
#include <algorithm>using namespace std;const int N = 1e5+10;
typedef struct pa{int va,in;
};pa f[N];
bool cmp(pa a, pa b){return a.va<b.va;
}int main(){int n,x;scanf("%d%d",&n,&x);for(int i=0;i<n;i++){scanf("%d",&f[i].va);f[i].in = i;}if(x<=n/2||n==1)printf("YES");else{sort(f,f+n,cmp);bool flag = true;for(int i=n-x;i<x;i++)if(f[i].in!=i){flag = false;break;}if(flag) printf("YES");else printf("NO");}return 0;
}

2547.Hemose购物(思维)相关推荐

  1. 新能源维修和计算机应用哪个好,在买新能源车之前 这些事你应该先知道

    虽然在电脑网来谈论新能源汽车好像并不是那么和谐,甚至会让人怀疑"电脑网是不是活不下去了要去抱汽车厂商的大腿",但inLife作为全新智能生活的观察者,对于全新的生活元素都会保持了解 ...

  2. 腾讯产品总监曹菲:如何克服职业焦虑

    文/腾讯产品总监曹菲 我从业到现在已经十年多了,这个问题是我从业五到七八年时最苦恼的话题.当时觉得这个世界太不友好了,互联网这个行业全是年轻人,30 岁以上就压力非常大,我缓解这种压力的方式就是每个周 ...

  3. 关键明 抖音 打造百万爆款变现文案

    文章目录 微信推文 海报文案 给获得感 引导下单 社交文案 走心文案 赢得陌生人的信任 5个绝招 轻松写出引爆销量的节日促销文案 电商详情页的用途 电商详情页的模板 自我介绍文案 群公告文案 吸引定律 ...

  4. 独立站SaaS系统站群模式怎么玩

    做独立站的人都知道"站群"这个游戏,意思是通过建站工具一次性建好几百个或者几千个独立站.各个独立站卖的品类比较垂直,不会有太多SKU.销量好的站会留着精细化运营,没流量的就放弃. ...

  5. 为何我工作十年,内心仍无比恐慌(腾讯产品总监曹菲)

    我从业到现在已经十年多了,这个问题是我从业五到七八年时最苦恼的话题.当时觉得这个世界太不友好了,互联网这个行业全是年轻人,30岁以上就压力非常大,我缓解这种压力的方式就是每个周末必须得去做一些我认为比 ...

  6. 硬上的腾讯有意,柔化的京东无情

    有消息称,腾讯因为易迅增长缓慢,有意入股京东,希望在电商行业里强强联手对抗阿里帝国. 不过,这个说法应当只能证明腾讯一厢情愿的落花有意,不过京东大概只能流水无情的表示矜持了,因为他们现在年满心都扑在& ...

  7. 腾讯产品总监曹菲:产品经理们,五年后,你会失业吗? 【上】

    馒头商学院2015年开学大课顺利结束,腾讯产品总监曹菲,前央视主持人.凯叔讲故事创始人王凯,文案大咖李叫兽,前凡客营销副总裁.<一个人的电商>作者许晓辉,杜蕾斯策划人.环时互动CKO老金, ...

  8. 腾讯产品总监曹菲-----为何我工作十年,内心仍无比恐慌

    我从业到现在已经十年多了,这个问题是我从业五到七八年时最苦恼的话题.当时觉得这个世界太不友好了,互联网这个行业全是年轻人,30岁以上就压力非常大,我缓解这种压力的方式就是每个周末必须得去做一些我认为比 ...

  9. 腾讯产品总监:我工作十年,内心仍无比恐慌

    转载地址:http://www.chinaz.com/manage/2015/1127/476037.shtml; 本文是曹菲在馒头商学院发表的演讲记录,曹菲是腾讯产品研发中心总监 (腾讯,中国最大的 ...

最新文章

  1. 阿里巴巴首次提出智慧建筑,技术与创新的新巅峰
  2. Hadoop记录-metastore jmx配置
  3. Python 函数参数传递
  4. draw_circle_mod预生成交互式圆形
  5. 第4章 Python 数字图像处理(DIP) - 频率域滤波1 - 傅里叶级数和变换简史
  6. python写入并获取剪切板内容_python写入并获取剪切板内容
  7. 如何删除office2007、以及安装新版本office
  8. 【转】 C++中的new VS C语言中的malloc
  9. php删除excel文件,PHPExcel:HTML到Excel,写入删除excel文件中的CSS
  10. python语言的类型是_Python的语言类型
  11. am57xx Damo根文件加载过程
  12. SVLsimulator与apollo6.0联合仿真
  13. html设计一个网页表格,21个新奇古怪的网页表格设计
  14. ITK入门教程(12)点集之得到存储的点
  15. P2135 方块消除
  16. 一个快速测试PlayCanvas Demo 的工程(内附源码)
  17. iframe------------frameSet
  18. Mac -- 启动ssh服务
  19. Android渠道包测试方案
  20. 矩阵乘法精解!(一图胜千言)

热门文章

  1. RTL8367s调试
  2. 【windows10 切换应用程序、虚拟桌面的快捷键, 详细使用教程】
  3. 迈拓维矩亮相2019北京InfoComm视听系统集成展
  4. 京东单品优惠券获取教程
  5. zeit serverless
  6. Atitit. 高级软件project师and 普通的差别 高级编程的门槛总结
  7. STM32学习之编程语言的介绍(参考洋桃电子视频)
  8. Gating自动混音器
  9. 利用Chrome浏览器开发者工具分析视频源地址下载到本地
  10. MySql分组后随机获取每组一条数据