2547.Hemose购物(思维)
题干
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购物(思维)相关推荐
- 新能源维修和计算机应用哪个好,在买新能源车之前 这些事你应该先知道
虽然在电脑网来谈论新能源汽车好像并不是那么和谐,甚至会让人怀疑"电脑网是不是活不下去了要去抱汽车厂商的大腿",但inLife作为全新智能生活的观察者,对于全新的生活元素都会保持了解 ...
- 腾讯产品总监曹菲:如何克服职业焦虑
文/腾讯产品总监曹菲 我从业到现在已经十年多了,这个问题是我从业五到七八年时最苦恼的话题.当时觉得这个世界太不友好了,互联网这个行业全是年轻人,30 岁以上就压力非常大,我缓解这种压力的方式就是每个周 ...
- 关键明 抖音 打造百万爆款变现文案
文章目录 微信推文 海报文案 给获得感 引导下单 社交文案 走心文案 赢得陌生人的信任 5个绝招 轻松写出引爆销量的节日促销文案 电商详情页的用途 电商详情页的模板 自我介绍文案 群公告文案 吸引定律 ...
- 独立站SaaS系统站群模式怎么玩
做独立站的人都知道"站群"这个游戏,意思是通过建站工具一次性建好几百个或者几千个独立站.各个独立站卖的品类比较垂直,不会有太多SKU.销量好的站会留着精细化运营,没流量的就放弃. ...
- 为何我工作十年,内心仍无比恐慌(腾讯产品总监曹菲)
我从业到现在已经十年多了,这个问题是我从业五到七八年时最苦恼的话题.当时觉得这个世界太不友好了,互联网这个行业全是年轻人,30岁以上就压力非常大,我缓解这种压力的方式就是每个周末必须得去做一些我认为比 ...
- 硬上的腾讯有意,柔化的京东无情
有消息称,腾讯因为易迅增长缓慢,有意入股京东,希望在电商行业里强强联手对抗阿里帝国. 不过,这个说法应当只能证明腾讯一厢情愿的落花有意,不过京东大概只能流水无情的表示矜持了,因为他们现在年满心都扑在& ...
- 腾讯产品总监曹菲:产品经理们,五年后,你会失业吗? 【上】
馒头商学院2015年开学大课顺利结束,腾讯产品总监曹菲,前央视主持人.凯叔讲故事创始人王凯,文案大咖李叫兽,前凡客营销副总裁.<一个人的电商>作者许晓辉,杜蕾斯策划人.环时互动CKO老金, ...
- 腾讯产品总监曹菲-----为何我工作十年,内心仍无比恐慌
我从业到现在已经十年多了,这个问题是我从业五到七八年时最苦恼的话题.当时觉得这个世界太不友好了,互联网这个行业全是年轻人,30岁以上就压力非常大,我缓解这种压力的方式就是每个周末必须得去做一些我认为比 ...
- 腾讯产品总监:我工作十年,内心仍无比恐慌
转载地址:http://www.chinaz.com/manage/2015/1127/476037.shtml; 本文是曹菲在馒头商学院发表的演讲记录,曹菲是腾讯产品研发中心总监 (腾讯,中国最大的 ...
最新文章
- 阿里巴巴首次提出智慧建筑,技术与创新的新巅峰
- Hadoop记录-metastore jmx配置
- Python 函数参数传递
- draw_circle_mod预生成交互式圆形
- 第4章 Python 数字图像处理(DIP) - 频率域滤波1 - 傅里叶级数和变换简史
- python写入并获取剪切板内容_python写入并获取剪切板内容
- 如何删除office2007、以及安装新版本office
- 【转】 C++中的new VS C语言中的malloc
- php删除excel文件,PHPExcel:HTML到Excel,写入删除excel文件中的CSS
- python语言的类型是_Python的语言类型
- am57xx Damo根文件加载过程
- SVLsimulator与apollo6.0联合仿真
- html设计一个网页表格,21个新奇古怪的网页表格设计
- ITK入门教程(12)点集之得到存储的点
- P2135 方块消除
- 一个快速测试PlayCanvas Demo 的工程(内附源码)
- iframe------------frameSet
- Mac -- 启动ssh服务
- Android渠道包测试方案
- 矩阵乘法精解!(一图胜千言)