CF1149A - Prefix Sum Primes(贪心)

传送门:Problem - 1149A - Codeforces

考虑到除了2以外所有的质数都由奇数组成,因此贪心思路为构造一个数列,使得数列中前缀和为奇数的情况尽量多。

因此可以先输出2和1,再将所有的2输出,最后再输出所有的1,此时得到的前缀和为质数的数量最多。

 

 

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
 
int o,t;

int n;

int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        int x;
        cin>>x;
        if(x==1)o++;
        if(x==2)t++;
    }
    if(t){
        t--;
        cout<<2<<" ";
    }
    if(o){
        o--;
        cout<<1<<" ";
    }
    while(t){
        t--;
        cout<<2<<" ";
    }
    while(o){
        o--;
        cout<<1<<" ";
    }
    return 0;
} 

 

上一篇:基于CentOS-7.2.15的Mono+jexus镜像


下一篇:php中abstract的用法