CF1341C. Nastya and Strange Generator(思维 模拟 构造)

简介: CF1341C. Nastya and Strange Generator(思维 模拟 构造)

linkkkk

题意:

给出n,要求将1   n 的数放到n个位置,问给出的p数组能否按照如下规则放置得到。

规则是:r数组满足r i > = i并且r i没有被占用,c i表示r数组里值为i的数的个数。每次选择c数组的最大值放置对应的位置放置,如果有多个位置的话,任意选择一个放置。

思路:

模拟一下样例后发现,如果一个元素放在了第k个位置,那么下一个元素会放在第k + 1个位置,因为这时候c k + 1 = = 2。但是如果k kk是数组里最后一个位置呢,那么下一个位置就可以从前面的位置任意选择不受限制了。

用f l a g表示放置是否受到限制,如果k不是最后一个位置,那么下一个位置必须是k + 1

代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+10,inf=0x3f3f3f3f;
int n,p[maxn],st[maxn];
int main(){
    int _;cin>>_;
    while(_--){
        cin>>n;
        for(int i=1;i<=n;i++) cin>>p[i],st[i]=0;
        int las=n,flag=1,flag1=1;
        if(p[1]==las){
            flag=0;las--;
        }
        st[p[1]]=1;
        for(int i=2;i<=n;i++){
            st[p[i]]=1;
            if(flag){
                if(p[i]!=p[i-1]+1){
                    flag1=0;break;
                }
            }
            if(p[i]==las){
                flag=0;
                while(st[las]) las--;
            }
            else flag=1;
        }
        if(!flag1) puts("No");
        else puts("Yes");
    }
    return 0;
}

参考


目录
相关文章
|
3月前
dict 和 set 的 8 个经典使用例子
dict 和 set 的 8 个经典使用例子
38 4
|
4月前
|
语音技术 Python
语音识别,continue和break的使用,循环综合案例,完成发工资案例,函数的初体验,len()是内置好的函数,def 函数名 def xxx(),函数的定义 def xxx() ,调用函数
语音识别,continue和break的使用,循环综合案例,完成发工资案例,函数的初体验,len()是内置好的函数,def 函数名 def xxx(),函数的定义 def xxx() ,调用函数
|
5月前
CF 1538 G. Gift Set (贪心+思维)
【6月更文挑战第14天】
36 0
|
6月前
|
存储 缓存 安全
learn_C_deep_9 (汇编角度理解return的含义、const 的各种应用场景、volatile 的基本理解与实验证明)
learn_C_deep_9 (汇编角度理解return的含义、const 的各种应用场景、volatile 的基本理解与实验证明)
|
前端开发 芯片
【芯片前端】所以说,一直以来我理解的set_multicycle_path -hold都是错的?
【芯片前端】所以说,一直以来我理解的set_multicycle_path -hold都是错的?
142 0
|
前端开发
【前端验证】对uvm_info宏的进一步封装尝试
【前端验证】对uvm_info宏的进一步封装尝试
|
人工智能 BI
CF761D Dasha and Very Difficult Problem(构造 思维)
CF761D Dasha and Very Difficult Problem(构造 思维)
79 0
CF1567D. Expression Evaluation Error(思维 贪心)
CF1567D. Expression Evaluation Error(思维 贪心)
59 0
|
语音技术 网络架构 Windows
CF1560 E. Polycarp and String Transformation(思维 枚举)
CF1560 E. Polycarp and String Transformation(思维 枚举)
75 0