• 题解——Codeforces Round #508 (Div. 2) T2 (构造)


    按照题意构造集合即可

    注意无解情况的判断

    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #include <cmath>
    #include <vector>
    #include <map>
    using namespace std;
    int n,sum;
    int main(){
      scanf("%d",&n);
      if(n==1){
        printf("No
    ");
        return 0;
      }
      sum=(n+1)*n/2;
    //  printf("%d
    ",sum);
      for(int i=2;i<=sum;i++){
          for(int j=1;j<=sqrt(i);j++){
            if(i%j==0){
            if(j!=i/j){
            if(j!=1&&sum!=i){
                if((sum-i)%j==0){
                  vector<int> ax,bx;
                  int cnta=0,cntb=0;
                  int now=n;
                  for(int k=i;k>0;){
                    if(k>=now){
                      k-=now;
                      cnta++;
                      ax.push_back(now);
                      now--;
                    }
                  else{
                    cntb++;
                    bx.push_back(now);
                    now--;
                    }
                  }
                  while(now){
                    bx.push_back(now);
                    now--;
                    cntb++;
                  }
                  printf("Yes
    ");
                  printf("%d ",cnta);
                  for(int i=0;i<ax.size();i++)
                    printf("%d ",ax[i]);
                  printf("
    ");
                  printf("%d ",cntb);
                  for(int i=0;i<bx.size();i++)
                    printf("%d ",bx[i]);
                  printf("
    ");
                  return 0;
                }
              }
            if(i/j!=1&&sum!=i){
              if((sum-i)%(i/j)==0){
                vector<int> ax,bx;
                int cnta=0,cntb=0;
                  int now=n;
                  for(int k=i;k>0;){
                    if(k>=now){
                      k-=now;
                      cnta++;
                      ax.push_back(now);
                      now--;
                    }
                  else{
                    cntb++;
                    bx.push_back(now);
                    now--;
                    }
                  }
                  while(now){
                    bx.push_back(now);
                    now--;
                    cntb++;
                  }
                  printf("Yes
    ");
                  printf("%d ",cnta);
                  for(int i=0;i<ax.size();i++)
                    printf("%d ",ax[i]);
                  printf("
    ");
                  printf("%d ",cntb);
                  for(int i=0;i<bx.size();i++)
                    printf("%d ",bx[i]);
                  printf("
    ");
                  return 0;
                }
              }
            }
          else{
            if(j!=1&&i!=sum)
              if((sum-i)%j==0){
                vector<int> ax,bx;
                int cnta=0,cntb=0;
                  int now=n;
                  for(int k=i;k>0;){
                    if(k>=now){
                      k-=now;
                      cnta++;
                      ax.push_back(now);
                      now--;
                    }
                  else{
                    cntb++;
                    bx.push_back(now);
                    now--;
                    }
                  }
                while(now){
                  bx.push_back(now);
                  now--;
                  cntb++;
                }
                printf("Yes
    ");
                printf("%d ",cnta);
                for(int i=0;i<ax.size();i++)
                  printf("%d ",ax[i]);
                printf("
    ");
                printf("%d ",cntb);
                for(int i=0;i<bx.size();i++)
                  printf("%d ",bx[i]);
                printf("
    ");
                return 0;
              }
            }
          }
        }
      }
      printf("No
    ");
      return 0;
    }
  • 相关阅读:
    操作系统
    Typora
    C++
    linux sftp 和scp 运用
    python GIL锁与多cpu
    django model 高级进阶
    django template 模板
    django view 视图控制之数据返回的视图函数
    django 创建管理员用户
    jango 模型管理数据model入门
  • 原文地址:https://www.cnblogs.com/dreagonm/p/9602507.html
Copyright © 2020-2023  润新知