题目:

小a非常喜欢这个数字,因为
现在他有一个长度为的序列,其中只含有这三种数字
为序列中第个数,你需要重新排列这个数列,使得最大(公式的含义是:每个数与前一个数差的平方的和)
注意:我们默认

代码:

#include <stdio.h>
 
int main()
{
    int n;
    //输入的时候
    while(scanf("%d",&n)!=EOF)
    {
        int a=0,b=0,c=0,sum=0;
        int zz,xx;
        //输入一行的n个整数
        for(int i=0;i<n;i++)
        {
            int num;
            scanf("%d",&num);
            if(num==0)
                a++;
            if(num==2)
                b++;
            if(num==4)
                c++;
        }
        //如果4 和 0 的个数相等的话
        if(c==a)
        {
            if(b!=0)
                sum=16*(c+a)+4;
            else
                sum=16*(c+a);
        }
        //如果4 比 0 的个数多的话
        else if(c>a)
        {
            zz = c - (c-a-1);  //0 少的 4 的个数
            if(b==0)
                sum = 16*(a+zz);
            else if((b-1)>=(c-a-1))
                sum = 16*(a+zz)+4+4*2*(c-a-1);
            else
                sum = 16*(a+zz)+4+4*(c-zz+b-1);
        }
        //如果4 比 0 的个数少的话
        else if(c<a)
        {
            xx = a-c; //剩下的0的个数
            if(xx==b)
                sum = 16*2*c+4*2*xx;
            else
            {
                if(b==0)
                    sum = 16*2*c;
                else
                {
                    int number = xx<b? xx:b;
                    sum = 16*2*c+4*(2*number+1);
                }
            }
        }
        printf("%d",sum);
    }
}
 
解法:
1. 将4 0 2 分别统计个数
2. 通过贪心,分别4 0 4 0 2 (这里有4和0的数目关系)
 
遇到的问题:
无法将解法流畅的转换成代码!多写
提交的时候,c和从c++还是有区别的,用c++提交显示错误

2019寒假算法基础集训营1 - B 小a与"204"的更多相关文章

  1. 牛客寒假算法基础集训营1 D 小a与黄金街道

    链接:https://ac.nowcoder.com/acm/contest/317/D 首先被数学题吓到了.gcd(n,x)==1 那么必定有 gcd(n,n-x)==1 证明略. 并且两个人的对答 ...

  2. 2020牛客寒假算法基础集训营2 J题可以回顾回顾

    2020牛客寒假算法基础集训营2 A.做游戏 这是个签到题. #include <cstdio> #include <cstdlib> #include <cstring ...

  3. 2020牛客寒假算法基础集训营1 J题可以回顾回顾

    2020牛客寒假算法基础集训营1 这套题整体来说还是很简单的. A.honoka和格点三角形 这个题目不是很难,不过要考虑周全,面积是1,那么底边的长度可以是1也可以是2, 注意底边1和2会有重复的, ...

  4. Applese 的毒气炸弹 G 牛客寒假算法基础集训营4(图论+最小生成树)

    链接:https://ac.nowcoder.com/acm/contest/330/G来源:牛客网 Applese 的毒气炸弹 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262 ...

  5. 牛客寒假算法基础集训营3B 处女座的比赛资格(用拓扑排序解决DAG中的最短路)

    链接:https://ac.nowcoder.com/acm/contest/329/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  6. 牛客寒假算法基础集训营4 I题 Applese 的回文串

    链接:https://ac.nowcoder.com/acm/contest/330/I 来源:牛客网 自从 Applese 学会了字符串之后,精通各种字符串算法,比如--判断一个字符串是不是回文串. ...

  7. 牛客寒假算法基础集训营4 I Applese 的回文串

    链接:https://ac.nowcoder.com/acm/contest/330/I来源:牛客网 自从 Applese 学会了字符串之后,精通各种字符串算法,比如……判断一个字符串是不是回文串. ...

  8. 牛客寒假算法基础集训营2 【处女座与复读机】DP最小编辑距离【模板题】

    链接:https://ac.nowcoder.com/acm/contest/327/G来源:牛客网 一天,处女座在牛客算法群里发了一句“我好强啊”,引起无数的复读,可是处女座发现复读之后变成了“处女 ...

  9. 2020牛客寒假算法基础集训营6 I.导航系统 (最小生成树)

    https://ac.nowcoder.com/acm/contest/3007/I 题中给定的图必定是一棵树 容易发现,如果将输入的N(N-1)个距离看做N(N-1)条无向边的话,那么如果数据合法, ...

随机推荐

  1. 使用AndroidStudio导入github项目

    1.在studio中配置github的项目地址 2.当你点击github,会这个样子 3.此处放你要clone的地址 ,然后点击clone. 4.等一会会出现这个页面,然后点击yes ,会出现这个页面 ...

  2. Struts 2 初步入门(五)之接受参数

    1.使用action的属性接受参数 执行顺序为:前端提交参数--->LoginAction.do进行处理--->处理成功后,跳转到sucess.jsp文件. (1)新建login.jsp文 ...

  3. SpringBoot配置文件的加载位置

    1.springboot启动会扫描以下位置的application.properties或者application.yml文件作为SpringBoot的默认配置文件 --file:/config/ - ...

  4. jdk settings

    JAVA_HOME   D:\envs\jdk\jdk8\jdk18045\jdk1.8.0_45   CLASSPATH   .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\to ...

  5. matlab global persistent变量

    global变量是全局的,在使用global变量的函数里需要用global声明所使用的变量. persistent类似global,不过仅对当前函数有作用,这样避免了外面的影响.当这个函数被clear ...

  6. C++11之 std::atomic (不用锁实现线程互斥)

    std::atomic_flag std::atomic_flag是一个原子的布尔类型,可支持两种原子操作: test_and_set, 如果atomic_flag对象被设置,则返回true; 如果a ...

  7. win10与centos7的双系统U盘安装(三:win10启动项的恢复)

    启动项的恢复比起前面两篇就简单多了,就是一个修改启动项的引导文件即可. 首先登陆超级管理员账户,也就是账号为root,密码为你在篇2设置的密码,注意linux系统下输入的密码不可见,小白容易误以为是b ...

  8. Java反射《一》获取类

    package com.study.reflect; /** * 反射:java程序运行中,可以获得该类的所有属性和方法,对于任意一个对象可以 调用它的属性和方法,这种动态获得属性和方法,调用对象属性 ...

  9. [POJ2985]The k-th Largest Group

    Problem 刚开始,每个数一个块. 有两个操作:0 x y 合并x,y所在的块 1 x 查询第x大的块 Solution 用并查集合并时,把原来的大小删去,加上两个块的大小和. Notice 非旋 ...

  10. Python select 详解(转)

    I/O多路复用是在单线程模式下实现多线程的效果,实现一个多I/O并发的效果.看一个简单socket例子: import socket SOCKET_FAMILY = socket.AF_INET SO ...