zoukankan      html  css  js  c++  java
  • Codeforces Round #556 (Div. 2) C. Prefix Sum Primes

    题目大意让你改变数组的排序,使前缀和的素数最多;

    这是一道模拟题,让你通过判断1和2的个数来解决,

    只要特判一下1的个数是零的时候,2的个数是零的时候,或者1只有一个而2的个数又不是0个的时候,剩下的情况我们只有把1的个数分奇数和偶数来考虑,大致思路是这样,接下来就看代码吧

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    const int maxn = 200010;
    int main()
    {
        int a[maxn];
        int n;
        cin >> n;
        int ans1 = 0, ans2 = 0;
        for (int i = 0; i < n; i++)
        {
            scanf("%d", &a[i]);
            if (a[i] == 1)ans1++;
            else ans2++;
        }
    
         if (ans1 == 1 && ans2 !=0)
        {
            printf("2 1");
            for (int i = 1;i < ans2;i++)printf(" 2");
        }
        else if (ans1 == 0 && ans2 != 0)
        {
            for (int i = 0;i < ans2;i++)printf("2 ");
        }
        else if (ans2 == 0 && ans1 != 0)
        {
            for (int i = 0;i < ans1;i++)printf("1 ");
        }
        else
         {
             printf("2 1");
             if (ans1 % 2 == 1)
             {
                 for (int i = 1;i < ans1;i++)printf(" 1");
                 for (int i = 1;i < ans2;i++)printf(" 2");
             }
             else
             {
                 for (int i = 1;i < ans1-1;i++)printf(" 1");
                 for (int i = 1;i < ans2;i++)printf(" 2");
                 printf(" 1");
             }
         }
    }
  • 相关阅读:
    python threading acquire release
    .net支付宝调试
    C#获取微信openid
    KindeEditor图片上传插件用法
    .net Repeater内部的按钮事件代码demo(Repeater内button的删除事件)
    .net 执行页面跳转弹窗提示,刷新代码
    .net验证控件
    上传图片
    数据库写入时间
    数据库读取
  • 原文地址:https://www.cnblogs.com/csxaxx/p/10801378.html
Copyright © 2011-2022 走看看