zoukankan      html  css  js  c++  java
  • codeforces round #616 div2 B Array sharpening(思维)

     

     题解:极限考虑一下,问题会变成三种情况:

    1,数组变成0,1,2,3,4,5,......,n-2,n-1(如果有一个数a[i]<i-1,就不行)

    2,数组变成n-1,n-2, ......,5,4,3,2,1,0(如果有一个数a[i]<n-i,就不行)

    3,数组变成0,1,2,3..... k ...... ,3,2,1,0

    接下来就简单了;

    从前向后扫一遍数组,标记一下,在从后往前扫一遍数组在标记一下,如果能交到一起就可以,否则就不行。

    scanf输入,cin会超时

    代码:

    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    #include <cstring>
    using namespace std;
    #define maxx 1010
    const int maxn=3e5+10;
    int l[maxn],r[maxn],n;
    long long a[maxn];
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            memset(l,0,sizeof(l));
            memset(r,0,sizeof(r));
            scanf("%d",&n);
            for(int i=1; i<=n; i++) scanf("%lld",&a[i]);
            for(int i=1; i<=n; i++)
            {
                if(a[i]>=i-1)
                  l[i]=1;
                else
                    break;
            }
            for(int i=n; i>=1; i--)
            {
                if(a[i]>=n-i)
                    r[i]=1;
                else
                    break;
            }
            bool flag=0;
            for(int i=1; i<=n; i++)
            {
                if(l[i]&&r[i])
                    flag=1;
            }
            if(flag) printf("YES
    ");
            else printf("NO
    ");
        }
        return 0;}
  • 相关阅读:
    用户管理
    开机、重启、用户登录注销
    网络请求的封装
    Vuex
    Promise
    Vue Router(二)
    Vue Router(一)
    Vue CLI
    前端模块化-导入导出
    插槽
  • 原文地址:https://www.cnblogs.com/sweetlittlebaby/p/12661603.html
Copyright © 2011-2022 走看看