zoukankan      html  css  js  c++  java
  • CF Codeforces Round #258 (Div. 2) B (451B)





    题意:找出一段逆序!

    预存a[]数组到b[]数组。将b排序,然后前后找不同找到区间[l,r],然后推断[l,r]是否逆序就能够了!。当然还得特判本身就是顺序的!!


    AC代码例如以下:


    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    
    int a[100005],b[100005];
    
    int main()
    {
        int n;
        int i;
        while(cin>>n)
        {
            memset(a,0,sizeof a);
            memset(b,0,sizeof b);
            for(i=0;i<n;i++)
                {cin>>a[i];
                b[i]=a[i];}
            sort(b,b+n);
            int flag1=1;
            for(i=0;i<n;i++)
            {
                if(a[i]!=b[i])
                {flag1=0;break;}
            }
            if(flag1)
            {
                cout<<"yes"<<endl<<"1"<<" "<<"1"<<endl;
                continue;
            }
            int flag=0;
            int l=0,r=n-1;
            for(i=0;i<n;i++)
            {
                if(a[i]!=b[i])
                {
                    l=i;
                    break;
                }
            }
             for(i=n-1;i>=0;i--)
            {
                if(a[i]!=b[i])
                {
                    r=i;
                    break;
                }
            }
            for(i=l+1;i<=r;i++)
            {
                if(a[i]>a[i-1])
                {flag=1;break;}
            }
            if(flag)
                cout<<"no"<<endl;
            else cout<<"yes"<<endl<<l+1<<" "<<r+1<<endl;
        }
        return 0;
    }


  • 相关阅读:
    初识多线程
    java开发中我们经常用到的一些名词
    gitHub提交代码
    Java-基础-HashMap
    Java-基础-LinkedList
    Java-基础-ArrayList
    Java-基础-JDK动态代理
    Java-基础-反射
    RabbitMQ-延迟队列
    RabbitMQ-TTL-死信队列_DLX
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5204389.html
Copyright © 2011-2022 走看看