zoukankan      html  css  js  c++  java
  • CF1330B Dreamoon Likes Permutations

    一道思维题,我们先找到最大值,因为这个必须要在其中一组中,之后判断两边

    注意当最大值在中间的时候有可能是同一组答案

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<cstdio>
    #include<map>
    #include<string>
    #include<vector>
    using namespace std;
    typedef long long ll;
    const int N=2e5+5;
    int a[N];
    int st[N];
    int st1[N];
    int s[N];
    int n;
    pair<int,int> ans[N];
    bool check(int s[], int n){
        for(int i = 1; i <= n; i++) st[i] = 0;
        for(int i = 0; i < n; i++) st[s[i]] = 1;
        for(int i = 1; i <= n; i++) {
            if(!st[i]) return 0;
        }
        return 1;
    }
    bool check(int len1,int n){
        return check(a, len1)&&check(a +len1,n-len1);
    }
    
    int main(){
        int t;
        cin>>t;
        while(t--){
            cin>>n;
            int i;
            int sign=0;
            for(i=0;i<n;i++){
                cin>>a[i];
                sign=max(sign,a[i]);
            }
            int cnt=0;
            if(check(n-sign,n)){
                ans[cnt++]=make_pair(n-sign,sign);
            }
            if(sign*2!=n&&check(sign,n))
            ans[cnt++]=make_pair(sign,n-sign);
            if(!cnt)
                cout<<0<<endl;
            else{
                cout<<cnt<<endl;
                for(i=0;i<cnt;i++)
                    cout<<ans[i].first<<" "<<ans[i].second<<endl;
            }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    vue代码调试
    在vscode中无法使用yarn
    js滚动条计算公式
    chrome插件制作-高级篇
    网站js注入实现自动输入账号密码
    String、StringBuffer和StringBuilder有什么区别?
    待重写
    http协议
    待重写
    java内存加载机制
  • 原文地址:https://www.cnblogs.com/ctyakwf/p/12701842.html
Copyright © 2011-2022 走看看