zoukankan      html  css  js  c++  java
  • CodeForces 125D【鸽巢原理】


    哇塞?开始的三个数其中两个数一定能确定一个序列。(鸽巢原理)

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    
    const int N=3e4+10;
    
    int a[N],n;
    bool vis[N];
    
    void print(vector<int>v)
    {
        int sz = v.size();
        for(int i=0; i<sz; i++)
            printf("%d ",v[i]);
        puts("");
    }
    
    bool check(vector<int>v)
    {
        if(!v.size())
            return false;
        if(v.size()==1||v.size()==2) return true;
    
        int d=v[1]-v[0];
        for(int i=2; i<v.size(); i++)
            if(v[i]-v[i-1]!=d)
                return false;
        return true;
    }
    
    bool solve(int l,int r)
    {
        vector<int>v1,v2;
        memset(vis,false,sizeof(vis));
        int d=a[r]-a[l];
        int last=-1,get=a[l];
        for(int i=1; i<=n; i++)
            if(a[i]==get)
            {
                get+=d;
                v1.push_back(a[i]);
                last=i;
            }
            else vis[i]=1;
        for(int i=1; i<=n; i++)
            if(vis[i])
                v2.push_back(a[i]);
        if(check(v2))
        {
            print(v1);
            print(v2);
            return true;
        }
        vis[last]=1;
        v1.pop_back();
        v2.clear();
        for(int i=1; i<=n; i++)
            if(vis[i])
                v2.push_back(a[i]);
        if(check(v2))
        {
            print(v1);
            print(v2);
            return true;
        }
        return false;
    }
    
    int main()
    {
        scanf("%d",&n);
        for(int i=1; i<=n; i++)
            scanf("%d",&a[i]);
        if(n==2)
            printf("%d
    %d",a[1],a[2]);
        else if(!solve(1,2)&&!solve(2,3)&&!solve(1,3))
            printf("No solution");
        return 0;
    }


  • 相关阅读:
    ODI Scenario 场景
    数据库权限管理
    Oracle KEEP 分析函数
    Oracle数据仓库套件
    复杂透视表的SQL生成方法
    DW/BI领域的自动化调度方案
    用户画像
    PCP
    理赔系统报表及表模型
    maltab 关于输入输出以及自定义函数的问题
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/6777351.html
Copyright © 2011-2022 走看看