六月十九日测试 五颜六色的小动物

题目描述

1.题目描述:
       小东东上小学了, 作为奖品东东爸送给小东东一些小动物。
每个小动物都有一个固定的颜色和大小。
       小东东在给小动物们一个编号后发现:第i个小动物的颜色是i,大小是Ai。
每个小动物i可以吸收大小不超过是它两倍的另一个小动物。 当颜色是x、大小是Ax的小动物x溶解颜色是y和大小是Ay的小动物y时( Ay≤2*Ax) ,
它们会变成一个颜色是x,大小是Ax +
Ay小动物。
注:由于小动物大小的原因,它们相互都有可能吸收对方。
很显然最后只会剩一个小动物。
现在小东东想知道,
最后剩下的一个小动物可能的颜色种数。
2.输入:
第一行一个整数N表示有多少小动物。
第二行包含N个整数,每个整数Ai表示第i个小动物的大小。
3.输出:
一个整数,表示最后剩下的一个小动物可能的颜色种数。

4.样例:
1.
输入1:

3

3 1 4


2. 输出1:

2
3.
样例解释:
可能的颜色是1, 3。
一种可能:第三个小动物溶解第二个小动物,之后第一个小
动物溶解了第三个小动物,最后剩下的小动物颜色是1。
4.
输入2:

5

1 1 1 1 1
5. 输入2:

5
6.
样例解释:
最后每个小动物都有可能剩下
5.数据范围:
2≤N≤100000
1≤Ai≤109

这道题可以说是一道贪心的题目,我们将数据排序就会发现,最大的一定可以留下

第二大的可以吃掉所有他前面的,如果他吃掉了所有他前面的大小*2>=最大的,它也可以留下

同理一直向前判断,知道有一个a[i]吃掉它前面所有的和*2<a[i+1],则他及他前面的都不可能留下。

下面是我写的代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
ll sum1[100001]={0},a[100001];
int main()
{
    ll i,j;
    ll n;
    scanf("%lld",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%lld",&a[i]);
    }
    if(n==1)
    {
        cout<<"1";
        return 0;
    }
    sort(a,a+n+1);
    for(i=1;i<=n;i++)
    {
        sum1[i]=sum1[i-1]+a[i];
    }
    ll count=1;
    ll step,step1=0;
    if(sum1[n-1]*2>=a[n])
    {
        count++;
        step=1;
    }
    else
    step=0;
    if(step!=0)
    {
        for(i=n-2;i>=1;i--)
        {
            if(sum1[i]*2>=a[i+1])
            {
                count++;
            }
            else
            break;
        }
    }
    printf("%lld",count);
}

时间: 2024-10-24 03:31:18

六月十九日测试 五颜六色的小动物的相关文章

通过CSS实现小动物

此例演示的是通过CSS实现动物头像,效果如下: 好了,上代码: html代码: 1 <html> 2 <head> 3 <meta charset="utf-8" /> 4 <title>纯CSS3实现的小动物</title> 5 <link href="css/animal.css" rel="stylesheet" type="text/css"/>

测试计算机是小端存储还是大端存储

    一.理解大端存储和小端存储的概念     1).大端存储:大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放.                 2).小端存储:小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致.        

自己做的加速app测试流程的小工具,目前打算开放使用,想注册的朋友抓紧了,嘻嘻

为了加速小团队app的测试流程做了这个东西,www.xunce.net 主要特性: web: 一键上传app,方便随时下载 备注测试要点 添加附件,如checklist等文档  自动识别app版本,名称等信息,不再因为测试版本多而混乱 支持iOS & Android 手机端: 一键下载.安装app到手机,方便.准确 查看测试要点,不会遗漏重要内容 一键批量上传测试截图和文本,在web端可直接查看 (目前只支持iOS 7(含)以上的越狱机器) 整个过程只需要点两下,被测试的app就可以安装到手机上

趣味测试类微信小程序

先说说项目需求吧, l  点击[再测一次],重新开始测试流程,主持人回复第一个题目,流程同上:答完全部题目后,底部不显示[立即开始分析]按钮,而是直接展示结果,且上一次测试内容不清空:如退出再进来,则清空全部历史记录. 图片说明: l 图片上面显示微信头像和昵称 l 名称:左右脑人才鉴定,下面显示2019权威测试标记: l 分数.简述文案与详述文案 l 二维码:H5聚合页的二维码 l 二维码文案为:长按识别二维码|快来领取你的左右脑成绩单 l 点击[点击保存结果],将图片保存到手机相册,且按钮隐

测试的一些小整理

黑盒测试 黑盒测试也称为功能测试 , 它着眼于程序的外部特征 , 而不考虑程序的内部逻辑结构.测 试者把被测程序看成一个黑盒 , 不用关心程序的内部结构.黑盒测试是在程序接口处进行测 试, 它只检查程序功能是否能正常使用, 程序是否能接收输入数据产生正确的输出信息, 并 且保持外部信息 ( 如数据库或文件 ) 的完整性.黑盒测试是基于用户角度进行的测试. 2. 白盒测试 软件测试的主要方法之一, 也称结构测试. 逻辑驱动测试或基于程序本身的测试. 测试 者需要了解待测试程序代码的内部结构. 算法

测试知识简单小总

软件测试结束的标准: 1)软件系统经过单元.集成.系统测试,分别达到单元.集成.系统测试的停止标准 2)软件系统通过验收测试,并已得出验收测试结论 3)软件项目需要暂停开发并进行调整时,测试应随之暂停.并备份暂停点的测试数据等 4)软件项目在开发的生命周期内出现重大估算.进度的偏差,需要暂停或终止时,测试应随之暂停或终止.并备份暂停或终止点的测试数据 -—————————————————————————————————————————————— 用例全部测试 覆盖率达到标准 缺陷率达到标准 其他

测试中的小事情

开发不能有的心态: 不要妄自揣测谁会使用自己的应用,因为谁都有可能. 不要以为每个访问者都和自己一样精通计算机知识,他们或许对计算机知识一无所知. 不要乐观地认为用户会因为网站导航体验不佳而还能保持浏览的兴趣,因为有很多竞争对手. 不要天真的以为自己了解所有用户对于性能和信息的终极需求. 上面的四句话,是对开发人员说的,但是对于测试人员来时一样适用 测试三大心态 破坏心态 既然是找bug的,那就要挑刺,尽可能做到鸡蛋里挑骨头,唯一需要关注的问题是怎么处理与开发的关系,不然有的是与开发争吵了. 第

【转】对于移动APP测试的一个小技巧

目标:目前越来越多的应用要支持移动设备,html5的推出,方便了页面对移动app的支持,那么我们该如何有效的去测试同时支持app和web的代码?web的测试可以使用浏览器的一些工具来辅助测试,比如ff的一些插件捕捉请求,抓包,可以来分析数据,进而验证数据的正确性与否,但是移动app该如何进行测试,如何去抓包,捕捉这些请求,客户端上是无法实现的.那么有别的方法吗?如果客户端测试你仅仅只用一个客户端来完成说明你out了.介绍一种方法来实现在pc上抓包,监控app的所有请求,测试app的代码. 需要的

测试反应能力的小代码!(娱乐)

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">&l