<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Codeforces Round #616 (Div. 2) B. Array Sharpening 水題

      B. Array Sharpening

      time limit per test1 second
      memory limit per test256 megabytes

      You're given an array a1,…,an of n non-negative integers.

      Let's call it sharpened if and only if there exists an integer 1≤k≤n such that a1<a2<…ak+1>…>an. In particular, any strictly increasing or strictly decreasing array is sharpened. For example:

      The arrays [4], [0,1], [12,10,8] and [3,11,15,9,7,4] are sharpened;
      The arrays [2,8,2,8,6,5], [0,1,1,0] and [2,5,6,9,8,8] are not sharpened.
      You can do the following operation as many times as you want: choose any strictly positive element of the array, and decrease it by one. Formally, you can choose any i (1≤i≤n) such that ai>0 and assign ai:=ai?1.

      Tell if it's possible to make the given array sharpened using some number (possibly zero) of these operations.

      Input

      The input consists of multiple test cases. The first line contains a single integer t (1≤t≤15 000) — the number of test cases. The description of the test cases follows.

      The first line of each test case contains a single integer n (1≤n≤3?105).

      The second line of each test case contains a sequence of n non-negative integers a1,…,an (0≤ai≤109).

      It is guaranteed that the sum of n over all test cases does not exceed 3?105.

      Output

      For each test case, output a single line containing "Yes" (without quotes) if it's possible to make the given array sharpened using the described operations, or "No" (without quotes) otherwise.

      Example

      input
      10
      1
      248618
      3
      12 10 8
      6
      100 11 15 9 7 8
      4
      0 1 1 0
      2
      0 0
      2
      0 1
      2
      1 0
      2
      1 1
      3
      0 1 0
      3
      1 0 1
      output
      Yes
      Yes
      Yes
      No
      No
      Yes
      Yes
      Yes
      Yes
      No

      Note

      In the first and the second test case of the first test, the given array is already sharpened.

      In the third test case of the first test, we can transform the array into [3,11,15,9,7,4] (decrease the first element 97 times and decrease the last element 4 times). It is sharpened because 3<11<15 and 15>9>7>4.

      In the fourth test case of the first test, it's impossible to make the given array sharpened.

      題意

      給你一個長度為n的數組,你可以進行若干次操作,每次操作可以讓一個數減一,但是最多使得這個數變成0.

      現在問你在進行若干次操作后,問你能否找到一個k,滿足a1<a2<...<ak, ak<ak+1<ak+2<....<an。

      題解

      視頻題解:https://www.bilibili.com/video/av86529667/

      貪心,我們考慮第i個數,如果他是在k的左邊,那么我肯定希望這個數變成i。

      同理,如果他是在k的右邊,我希望這個數變成n-i-1.

      我掃一遍,維護前綴是否能夠都能變成左邊。掃一遍后綴,看是否都能夠變成右邊,最后枚舉一下k就可以了。

      代碼

      #include<bits/stdc++.h>
      using namespace std;
      const int maxn = 300005;
      int l[maxn],r[maxn],a[maxn];
      void solve(){
          int n;
          cin>>n;
          for(int i=0;i<n;i++){
              cin>>a[i];
              l[i]=0;
              r[i]=0;
          }
          for(int i=0;i<n;i++){
              if(a[i]>=i){
                  l[i]=1;
                  if(i>0&&l[i-1]==0){
                      l[i]=0;
                  }
              }
          }
          for(int i=n-1;i>=0;i--){
              if(a[i]>=n-1-i){
                  r[i]=1;
                  if(i<n-1&&r[i+1]==0){
                      r[i]=0;
                  }
              }
          }
          for(int i=0;i<n;i++){
              if(l[i]==1&&r[i]==1){
                  cout<<"Yes"<<endl;
                  return;
              }
          }
          cout<<"No"<<endl;
      }
      int main(){
          int t;
          cin>>t;
          while(t--){
              solve();
          }
          return 0;
      }
      
      posted @ 2020-02-03 19:12  qscqesze  閱讀(408)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日本一区二区三区四区黄色| 国产精品无码v在线观看| 国产农村老熟女国产老熟女| 若尔盖县| 亚洲第一香蕉视频啪啪爽| 精品一区二区中文字幕| 色爱综合激情五月激情| 亚洲码国产精品高潮在线| 精品无人乱码一区二区三区的优势| 色噜噜一区二区三区| 国产无码高清视频不卡| 日韩视频中文字幕精品偷拍| 国产99久60在线视频 | 传媒| 国产18禁一区二区三区| 人妻少妇偷人精品一区| 国产成人久久精品流白浆| 欧美精品久久天天躁| 精品无码三级在线观看视频| av中文无码乱人伦在线观看| 屁屁影院ccyy备用地址| 免费费很色大片欧一二区| 欧美成人午夜在线观看视频| 67194熟妇在线观看线路| 久久一亚色院精品全部免费| 99中文字幕精品国产| 产综合无码一区| 免费无码黄动漫在线观看| 亚洲国产大片永久免费看| 精品中文字幕人妻一二| 久久97人人超人人超碰超国产| 国产在热线精品视频99公交| 少妇真人直播免费视频| 国产成人午夜精品影院| 东兰县| 18禁动漫一区二区三区| 国产精品普通话国语对白露脸| 亚洲AV午夜电影在线观看| 精品人妻中文字幕av| 久久精品国产久精国产| 国产真人无遮挡免费视频| 亚洲精品中文av在线|