HDU 1205:吃糖果 ← 鸽巢原理

news2024/9/27 15:19:14

【题目来源】
http://acm.hdu.edu.cn/showproblem.php?pid=1205

【题目描述】
HOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢将一样的糖果放在一起吃,喜欢先吃一种,下一次吃另一种,这样;可是Gardon不知道是否存在一种吃糖果的顺序使得他能把所有糖果都吃完?请你写个程序帮忙计算一下。

【输入格式】
第一行有一个整数T,接下来T组数据,每组数据占2行,第一行是一个整数N(0<N<=1000000),第二行是N个数,表示N种糖果的数目Mi(0<Mi<=1000000)。

【输出格式】
对于每组数据,输出一行,包含一个"Yes"或者"No"。

【输入样例】
2
3
4 1 1
5
5 4 3 2 1

【输出样例】
No
Yes

【算法分析】

鸽巢原理(Pigeonhole Principle),或称抽屉原理(Drawer Principle)。
鸽巢原理常见的两种表述如下所述:
● 将 n+1 个物体,划分为 n 组,那么有至少一组有两个(或以上)的物体。
● 将 n 个物体,划分为 k 组,那么至少存在一个分组,含有大于或等于 \left \lceil \frac{n}{k} \right \rceil 个物品。

本题是鸽巢原理的典型应用:若设数量最多的某种糖果数为 N,其他糖果总数为 S。若视 N 个糖果为 N 个隔板,并把每个隔板的右边看成一个空间,则可隔成 N 个空间。

S<N-1(也即,N>S+1),则至少有两个隔板之间没有糖果,而隔板代表同一种糖果,故无解。
S>=N-1(也即,N<=S+1),肯定有解。

依据一种取巧的方法,“若整数位数超过10位,就选择用
long long 型”。故本题中的若干变量不定义为 int 型,而定义为 long long 型,因为计算过程中,极大可能会超过 10 位数。

【算法代码】

#include <iostream>
using namespace std;

typedef long long LL;
LL imax,sum;
LL n,x;

int main() {
    LL T;
    scanf("%lld",&T);
    while(T--) {
        imax=0;
        sum=0;
        scanf("%lld",&n);
        while(n--) {
            scanf("%lld",&x);
            if(imax<x) imax=x;
            sum+=x;
        }
        sum-=imax;
        if(imax<=sum+1) printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}


/*
in:
2
3
4 1 1
5
5 4 3 2 1

out:
No
Yes
*/






【参考文献】
https://blog.csdn.net/blue_skyrim/article/details/46126049
https://blog.csdn.net/weixin_45696704/article/details/114483453

https://zhuanlan.zhihu.com/p/661206530







 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1364120.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cgo环境之-安装gcc mingw

下载 到官网下载&#xff1a; 官网 如果你是Windows arm 芯片&#xff0c;可以到这里下载 https://github.com/mstorsjo/llvm-mingw/releases

10款有趣的前端源码分享(附效果图及在线演示)

分享10款非常有趣的前端特效源码 其中包含css动画特效、js原生特效、svg特效以及小游戏等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源 自毁按钮动画特效 自毁按钮动画特效 点击打开盒子可以点击自毁按钮 进而会出现自毁…

【ESP32接入国产大模型之文心一言】

1. 怎样接入文心一言 视频讲解&#xff1a; 【ESP32接入国产大模型之文心一言】 随着人工智能技术的不断发展&#xff0c;自然语言处理领域也得到了广泛的关注和应用。在这个领域中&#xff0c;文心一言作为一款强大的自然语言处理工具&#xff0c;具有许多重要的应用价值。本…

数据结构——栈(Stack)

目录 1.栈的介绍 2.栈工程 2.1 栈的定义 2.1.1 单链表实现栈 2.1.2 数组实现栈 2.1.2.1 静态数组栈 2.1.2.2 动态数组栈 2.2 栈的函数接口 2.2.1 栈的初始化 2.2.2 栈的数据插入&#xff08;入栈&#xff09; 2.2.3 栈的数据删除&#xff08;出栈&#xff09; 2.2.…

【docker】centos 使用 Nexus Repository 搭建私有仓库

Nexus Repository 是一种流行的软件仓库管理工具&#xff0c;它可以帮助您搭建私有仓库&#xff0c;以便在内部网络或私有云环境中存储、管理和分发各种软件包和组件。 它常被用于搭建Maven的镜像仓库。本文演示如何用Nexus Repository搭建docker 私有仓库。 使用Nexus Repos…

【InternLM】Lagent智能体工具调用实践浦语·灵笔(InternLM-XComposer)图文理解创作Demo练习

目录 前言一、Lagent智能体工具1-1、什么是智能体&#xff1f;1-2、Lagent智能体 二、InternLM-XComposer&#xff08;图文理解创作模型介绍&#xff09;三、Lagent调用实践3-0、环境搭建3-1、创建虚拟环境3-2、导入所需要的包3-3、模型下载3-4、Lagent安装3-5、demo运行 四、I…

阿里云服务器固定带宽下载和上传速度对照表

阿里云服务器公网带宽上传和下载速度对照表&#xff0c;1M带宽下载速度是128KB/秒&#xff0c;为什么不是1M/秒&#xff1f;阿腾云atengyun.com分享阿里云服务器带宽1M、2M、3M、5M、6M、10M、20M、30M、50M、100M及200M等公网带宽下载和上传速度对照表&#xff0c;附带宽价格表…

性能测试之(九):JMeter关联

关联&#xff1a;当请求之间有依赖关系&#xff0c;比如下一个请求的入参是上一个请求返回的数据&#xff0c;这需要进行关联处理&#xff1b; 关联场景1&#xff1a;登录之后返回token&#xff0c;后续的请求需要带token; 常用的关联方法&#xff1a;&#xff08;在后置处理器…

[算法应用]dijkstra算法的应用

先看一眼原始dijkstra算法&#xff0c;参考自dijkstra算法C实现_c实现djikstra-CSDN博客 分为三步 找到当前最优的把当前最优的&#xff0c;不参与后面的更新逐个比较是否更新 dijkstra算法的应用 题目大概是要从图上找一条权值不减的路径&#xff0c;且要经过最多的点。 所以…

odoo17 | 模型之间的内联视图

前言 从商业角度来看&#xff0c;我们的房地产模块现在是有意义的。我们创建了特定的视图&#xff0c;添加了几个操作按钮和约束。然而&#xff0c;我们的用户界面仍然有点粗糙。我们想为列表视图添加一些颜色&#xff0c;并使一些字段和按钮有条件地消失。例如&#xff0c;当…

STM32F407ZGT6时钟源配置

1、26M外部时钟源 1、25M外部时钟源

四种方式实现[选择性注入SpringBoot接口的多实现类]

最近在项目中遇到两种情况&#xff0c;准备写个博客记录一下。 情况说明&#xff1a;Service层一个接口是否可以存在多个具体实现&#xff0c;此时应该如何调用Service&#xff08;的具体实现&#xff09;&#xff1f; 其实之前的项目中也遇到过这种情况&#xff0c;只不过我采…

【linux应用开发】进程通信总结——使用管道、消息队列、共享内存、信号量实现l进程通信的详细教程

文章目录 简介无名管道有名管道IPC key标识消息队列共享内存信号量 简介 进程间通信&#xff08;IPC, Inter-Process Communication&#xff09;是指在操作系统中&#xff0c;不同进程之间交换数据、信息和命令的过程。在一个多任务的操作系统中&#xff0c;多个进程可以同时运…

Python和Java环境搭建

小白搭建全流程 首先不建议装在C盘&#xff0c;一旦重置电脑&#xff0c;之前安装第三方包需要重新安装 relolver :解释器 1、Python解释器安装 资源包&#xff1a; 1、 python -version java -version–用于查看是否安装 where python whrer java–用于查看安装的位置【非常…

ARTrack 阅读记录

目录 环境配置与脚本编写 前向传播过程 网络结构 环境配置与脚本编写 按照官网执行并没有顺利完成&#xff0c;将yaml文件中的 pip 项 手动安装的 conda create -n artrack python3.9 # 启动该环境&#xff0c;并跳转到项目主目录路径下 astor0.8.1 configparser5.2.0 data…

(2023|NIPS,MUSE,掩蔽适配器,基于反馈的迭代训练)StyleDrop:任意风格的文本到图像生成

StyleDrop: Text-to-Image Generation in Any Style 公和众和号&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 3. StyleDrop&#xff1a;文本到图像合成的风格调整 3.1 基础&#x…

Java-网络爬虫(二)

文章目录 前言一、WebMagic二、使用步骤1. 搭建 Maven 项目2. 引入依赖 三、入门案例四、核心对象&组件1. 核心对象SipderRequestSitePageResultItemsHtml&#xff08;Selectable&#xff09; 2. 四大组件DownloaderPageProcessorSchedulerPipeline 上篇&#xff1a;Java-网…

浅析Attention

本质&#xff1a; Attention机制的本质来自于人类视觉注意力机制。人们在看东西的时候一般不会从头看到尾全部都看&#xff0c;往往只会根据需求观察注意特定的一部分。简单来说&#xff0c;就是一种权重参数的分配机制&#xff0c;目标是协助模型捕捉重要信息。 原理&#x…

自监督深度学习技术

一、定义 自监督学习&#xff08;SSL&#xff09;是机器学习的一种范式&#xff0c;用于处理未标记数据以获取有用的表示&#xff0c;以帮助下游学习任务。SSL方法最显著的特点是它们不需要人类标注的标签&#xff0c;这意味着它的训练完全基于由未标记的数据样本组成的数据集…

在做题中学习(43):长度最小的子数组

LCR 008. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;同向双指针-------滑动窗口算法 解释&#xff1a;本是暴力枚举做法&#xff0c;因为全部是正整数&#xff0c;就可以利用单调性和双指针解决问题来节省时间 思路&#xff1a; 如上面图&am…