
题意:
一个无重复数字的序列,能否反转一个区间使其成为单增序列。
解析:
记录每个点的值和初始下标,然后排序。
对于排好序的序列进行遍历,找出第一段和原序列下标不同的区间并且标记(此区间即为翻转的区间),如果还出现其他的不同区间则不符题意。
- #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;
- }
-
相关阅读:
C复习-输入输出函数+流
【Linux】特别篇--SMBus 协议
Spring Boot | Spring Boot “自定义“ Redis缓存 “序列化机制“
机器人中的数值优化(十)——线性共轭梯度法
一文搞懂 SAE 日志采集架构
【高并发】从源码角度深度解析线程池是如何实现优雅退出的
2.【openCV常用函数模板】
【数据结构】链表经典oj
【Ant Design Pro】使用ant design pro做为你的开发模板(八)开发第一个完整的后台页面
tp6使用rabb
-
原文地址:https://blog.csdn.net/JungleZRD/article/details/133579161