• Nastya and Strange Generator


    Denis was very sad after Nastya rejected him. So he decided to walk through the gateways to have some fun. And luck smiled at him! When he entered the first courtyard, he met a strange man who was selling something.

    Denis bought a mysterious item and it was... Random permutation generator! Denis could not believed his luck.

    When he arrived home, he began to study how his generator works and learned the algorithm. The process of generating a permutation consists of nn steps. At the ii-th step, a place is chosen for the number i(1in)(1≤i≤n). The position for the number ii is defined as follows:

    • For all jj from 11 to nn, we calculate rjrj  — the minimum index such that jrjnj≤rj≤n, and the position rjrj is not yet occupied in the permutation. If there are no such positions, then we assume that the value of rjrj is not defined.
    • For all tt from 11 to nn, we calculate counttcountt  — the number of positions 1jn1≤j≤n such that rjrj is defined and rj=trj=t.
    • Consider the positions that are still not occupied by permutation and among those we consider the positions for which the value in the countcount array is maximum.
    • The generator selects one of these positions for the number ii. The generator can choose any position.

    Let's have a look at the operation of the algorithm in the following example:

    Let n=5n=5 and the algorithm has already arranged the numbers 1,2,31,2,3 in the permutation. Consider how the generator will choose a position for the number 44:

    • The values of rr will be r=[3,3,3,4,×]r=[3,3,3,4,×], where ×× means an indefinite value.
    • Then the countcount values will be count=[0,0,3,1,0]count=[0,0,3,1,0].
    • There are only two unoccupied positions in the permutation: 33 and 44. The value in the countcount array for position 33 is 33, for position 44 it is 11.
    • The maximum value is reached only for position 33, so the algorithm will uniquely select this position for number 44.

    Satisfied with his purchase, Denis went home. For several days without a break, he generated permutations. He believes that he can come up with random permutations no worse than a generator. After that, he wrote out the first permutation that came to mind p1,p2,,pnp1,p2,…,pn and decided to find out if it could be obtained as a result of the generator.

    Unfortunately, this task was too difficult for him, and he asked you for help. It is necessary to define whether the written permutation could be obtained using the described algorithm if the generator always selects the position Denis needs.

    Input

    The first line contains a single integer t(1t105)(1≤t≤105)  — the number of test cases. Then the descriptions of the test cases follow.

    The first line of the test case contains a single integer n(1n105)(1≤n≤105)  — the size of the permutation.

    The second line of the test case contains nn different integers p1,p2,,pnp1,p2,…,pn (1pin1≤pi≤n)  — the permutation written by Denis.

    It is guaranteed that the sum of nn over all test cases doesn't exceed 105105.

    Output

    Print "Yes" if this permutation could be obtained as a result of the generator. Otherwise, print "No".

    All letters can be displayed in any case.

    Example
    input
    Copy
    5
    5
    2 3 4 5 1
    1
    1
    3
    1 3 2
    4
    4 2 3 1
    5
    1 5 2 4 3
    
    output
    Copy
    Yes
    Yes
    No
    Yes
    No
    
    Note

    Let's simulate the operation of the generator in the first test.

    At the 11 step, r=[1,2,3,4,5],count=[1,1,1,1,1]r=[1,2,3,4,5],count=[1,1,1,1,1]. The maximum value is reached in any free position, so the generator can choose a random position from 11 to 55. In our example, it chose 55.

    At the 22 step, r=[1,2,3,4,×],count=[1,1,1,1,0]r=[1,2,3,4,×],count=[1,1,1,1,0]. The maximum value is reached in positions from 11 to 44, so the generator can choose a random position among them. In our example, it chose 11.

    At the 33 step, r=[2,2,3,4,×],count=[0,2,1,1,0]r=[2,2,3,4,×],count=[0,2,1,1,0]. The maximum value is 22 and is reached only at the 22 position, so the generator will choose this position.

    At the 44 step, r=[3,3,3,4,×],count=[0,0,3,1,0]r=[3,3,3,4,×],count=[0,0,3,1,0]. The maximum value is 33 and is reached only at the 33 position, so the generator will choose this position.

    At the 55 step, r=[4,4,4,4,×],count=[0,0,0,4,0]r=[4,4,4,4,×],count=[0,0,0,4,0]. The maximum value is 44 and is reached only at the 44 position, so the generator will choose this position.

    In total, we got a permutation of 2,3,4,5,12,3,4,5,1, that is, a generator could generate it.

    试了几次发现a[i]<a[i+1]-1

  • 相关阅读:
    oracle数据库中的单行函数
    Oracle数据库的基本语句
    oracle数据库安装的注意事项
    第一个自动化脚本
    负载均衡__笔记
    计算机名词解释
    开发规范__笔记
    索引_笔记
    主从复制_笔记
    Eclipse Git和sourceTree用法
  • 原文地址:https://www.cnblogs.com/dealer/p/12908686.html
Copyright © 2020-2023  润新知