
题意:
一个无重复数字的序列,能否反转一个区间使其成为单增序列。
解析:
记录每个点的值和初始下标,然后排序。
对于排好序的序列进行遍历,找出第一段和原序列下标不同的区间并且标记(此区间即为翻转的区间),如果还出现其他的不同区间则不符题意。
- #include
- using namespace std;
- #define int long long
- const int N=2e5+5;
- int t,n,s;
- struct node{
- int id,k;
- bool operator<(const node& t)const{
- return k
- }
- }a[N];
- signed main(){
- scanf("%lld",&n);
- for(int i=1;i<=n;i++){
- scanf("%lld",&a[i].k);
- a[i].id=i;
- }
- sort(a+1,a+n+1);
- int l=-1,r,f=1;
- for(int i=1;i
- if(a[i].id!=i){
- s=1;
- if(l==-1){
- l=i,r=i;
- int p=a[i].id;
- for(int j=i+1;j<=n;j++){
- if(a[j].id==p-1) r++,p--;
- else break;
- }
- i=r;
- }
- else{
- f=0;
- break;
- }
- }
- }
- if(!s) l=r=1;
- if(f) cout<<"yes"<
" "< - else cout<<"no";
- return 0;
- }
-
相关阅读:
洞察行业趋势:2024年平台工程预测
华为交换机:ARP静态绑定技术
猜你需要的第三方免费API大全分享
小发猫物联网平台搭建与应用模型
传感器CE测试认证检测要求
DJYOS模组之一:BK7251 WIFI模组介绍
#Java的语法糖
Java书签 #获取项目应用中所有Mapper接口并打印URL
【英语:基础进阶_语法进阶提升】F5.定语从句
【Python】Python中一些有趣的用法
-
原文地址:https://blog.csdn.net/JungleZRD/article/details/133579161