hdu 4190 Distributing Ballot Boxes

Distributing Ballot Boxes(HDU1490) 给出n个城镇的人,m个投票箱,求出最小票箱容积,使得最快完成投票收集。 2,7 2000 5000 那么一个票箱装1000,7个票箱装满。 这道题是第二次写,两种思路,一种是二分答案,一种是优先队列。 方法一:二分答案 #include using namespace std; int a[500005]; int n,m,maxnum; int check(int x) { 阅读详情

原题 : http://acm.hdu.edu.cn/showproblem.php?pid=4190

//题目没想出来,对贪心和二分的理解都不够深刻,要多吸取经验,不在同一个地方跌倒两次。

//题目大意:有n座城市和m个箱子,并且知道每座城市的人口,每座城市必须有一个以上的箱子,每个箱子不能为空,求一个分配方案,可以使得每一个箱子投票的人数尽量最少,输出这个方案中,平均投票人数最多的箱子的人数。
//为什么是二分?因为给定的箱子数是一定的,而且结果所在的范围我们也可以知道。结果在某个已知的范围内,所以我们可以使用二分查找,而且箱子数一定是个限制条件,可以作为判断的标准。
//思路: 当城市数目和箱子的数目相同时,直接输出城市的最大人数M。
//     当城市数目小于箱子的数目,最后的结果即最大平均数必是<=最大的对城市的人数M的。l=1,r=M进行二分,对mid=(l+r)/2进行检测greed();
//     检测方法:对于传进参数mid,遍历每一个城市,要使平均数<=mid,需要多少个箱子,再把所有的箱子数加起来,如果大于给定的箱子数m,说明这个平均数mid太小,如果小于m说明给的平均数mid太大
//     在不断地二分之后,区间逐渐缩小,最后得到一个数rs,即是结果。
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int a[500001];
int n,m;
int greed(int mid)
{
	int cnt=0;
	for(int i=1;i<=n;i++)
	{
		if(a[i]<=mid){
			cnt++;
		}else{
			int tmp=a[i]/mid;
			if(a[i]%mid)
			{
				tmp++;
			}
			cnt=cnt+tmp;
		}
	}
	if(cnt<=m)return 1;//函数返回1,表示给定的平均数avg,所求得的箱子数小于给定的箱子数 
	return 0; 
}
int find(int r) 
{
	int l=1;
	int rs=0;
	while(l<=r)
	{
		int mid=(l+r)/2;
		if(greed(mid))//返回1,表示当前的箱子数小于给的箱子数,找更小的平均数 
		{
			rs=mid; //记下这个有效的平均数 
			r=mid-1;
		}else{       //返回0,表示当前的箱子数大于给的箱子数,找更大的平均数 
			l=mid+1;
		}
	}
	return rs; 
}
int main()
{
	scanf("%d %d",&n,&m);
	while(!(n==-1 && m==-1))
	{
		int M=-1;
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&a[i]);
			M=max(M,a[i]);
		}
		if(m==n){
			printf("%d\n",M);
		}else{
			printf("%d\n",find(M));
		}
		scanf("%d %d",&n,&m);
	}
	return 0;
}


hdu 4190 #二分答案 Online Judge Online Exercise Online Teaching Online Contests Exercise Author F.A.Q Hand In Hand Online Acmers Forum | Discuss Statistical Charts Problem Archive Realtime Judge Statu 阅读详情

相关推荐

机器人手眼标定快速精度验证方法

机器人手眼标定快速精度验证方法

laoli_的博客 1万+

Distributing Ballot Boxes HDU - 4190【详细翻译】【贪心、二分】

    题意:题目给出N个城市和B个邮箱,接下里输入N个城市的人口数量,对于每一个城市,需要给出至少一个邮箱方便选民寄信,我们所要做的就是,将邮箱按照一定要求分配给各个城市,使得装有最多信封的邮箱中的信封同比其他方案下最多信封的邮箱中的信封数是最少的(有那么点绕,简而言之就是相当于使得最大值最小)。    思路还是很明确的,跟Pie的那道题(我的解题链接(详解))差不多,在这里,我还是会给出详解:...

既然弱小,就只顾变强就是了 448

STM32F411CEU6实战:用W25Q64存储多张图片,在240x240 LCD上轮播显示(附源码)

本文详细介绍了如何使用STM32F411CEU6通过SPI接口管理W25Q64 Flash中的多张图片,并在240x240 LCD上实现平滑轮播显示。内容涵盖硬件配置、图片存储方案设计、轮播系统实现及性能优化技巧,特别针对SPI传输优化和多图存储管理提供了实用解决方案。附源码,适合嵌入式开发者参考。

weixin_32025789的博客 309

hdu 4190 Distributing Ballot Boxes 二分

Distributing Ballot Boxes Time Limit: 20000/10000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 756Accepted Submission(s): 372 Problem Description Today, bes...

weixin_33750452的博客 198

从理论到实践:使用Sigrity SystemSI完成DDR4信号完整性仿真全流程解析

本文详细解析了使用Sigrity SystemSI完成DDR4信号完整性仿真的全流程,从核心挑战到实战操作。文章深入探讨了DDR4信号完整性问题,介绍了SystemSI工具链的演进与分工,并提供了从前期准备到高级技巧的详细指南,帮助工程师有效解决DDR4设计中的信号完整性问题。

weixin_30505225的博客 512

mysql数据目录迁移后表不存在_mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法...

补充:正常情况下,建议数据库备份最好用工具进行备份,通过拷贝数据库表进行数据迁移,不同的环境会出现各种不同的意外问题。背景:今天在整理一个网站的时候,操作系统由于系统自动更新导致一直出现系统蓝屏死机,唉,悲剧了,于是重新安装了系统 windows server 2008 enterprise 32bit。详情:系统安装完成后,重新配置之前那个网站,appache服务配好之后,再配置数据的时候是这样...

weixin_39628271的博客 2674

HDU 4190 Distributing Ballot Boxes

D - Distributing Ballot Boxes Crawling in process... Crawling failed Time Limit:10000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4190

浮生匆忙,与君同往 469

眼动数据分析基础_AOI分析动态刺激物

如果您正在研究人们对如视频、动画等动态刺激物的视觉行为,动态AOI工具可为您提供类似静态AOI工具对于图片及其他静止刺激物分析的同样功能。创建和编辑动态AOI的过程和静态AOI相似。 关于动态AOI工具的使用,有几点非常重要: 多个看到相同线性动态刺激物的用户的眼动数据叠加是有价值的; 动态AOI不能用于非线性动态记录的分析; 动态AOI不能用于静态刺激物,如图片的分析; 动态AOI可以被开启、关闭、移动、调整大小及跟踪相关分析对象 首先,我们来定义两种不同的动态刺激物:线性动态刺激物(LDS),是指固

Kobe123brant的博客 3503

Distributing Ballot Boxes HDU - 4190

Today, besides SWERC'11, another important event is taking place in Spain which rivals it in importance: General Elections. Every single resident of the country aged 18 or over is asked to vote in ord...

Qtt110的博客 200

保姆级教程:在Jetson Nano上从零移植OV5647 CSI摄像头驱动(附完整调试记录)

本文提供了一份详细的Jetson Nano OV5647 CSI摄像头驱动移植教程,涵盖硬件准备、驱动框架分析、设备树配置、驱动移植核心修改点及调试技巧。通过V4L2框架和Tegra平台适配,开发者可快速实现摄像头驱动的移植与优化,适用于边缘计算和嵌入式视觉应用。

weixin_27869497的博客 519

蓝鸟四轴飞控系统C程序V3.0(基础版本)深度解读

2. 解析遥控通道数据(油门 / 横滚 / 俯仰 / 偏航),转换为标准化值(-1000~+1000);3. 封装PID初始化(PID_Init,配置KP/KI/KD、输出限幅、积分限幅);,包含姿态角(Attitude_Data.Roll/Pitch/Yaw)、角速度(Gyro_Data.X/Y/Z)、遥控值(RC_Data[0~5])、电池电压(Bat_Volt)、电机PWM值(Motor_PWM[0~3])、系统状态(Sys_State),校验和通过Check_Sum()函数计算;

搏博的专栏 344

Distributing Ballot Boxes【HDU - 4190 】

Today, besides SWERC'11, another important event is taking place in Spain which rivals it in importance: General Elections. Every single resident of the country aged 18 or over is asked to vote in ord...

Meant_To_Be的博客 269

【大数据技术干货】(还不懂数仓,数据中心?看这一篇就够了!)在实际的开发生产中,让你了解企业级数据中心整体架构(DB+ETL+ODS+DW+DM)的各个层次的过程详解,数据联系及功能区分

一 企业级数据中心架构 数据仓库的整体架构,各个系统的元数据通过ETL同步到操作性数据仓库ODS中,对ODS数据进行面向主题域建模形成DW(数据仓库),DM是针对某一个业务领域建立模型,具体用户(决策层)查看DM生成的报表。 二 DB 三 ETL(Extract-Transform-Load) ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ET

liuchunhang的博客 1289

HDU 4190 - Distributing Ballot Boxes

贪心+二分,最大值最小化问题。利用投票箱b的值是一定的,将投票数进行二分,使得算出的投票箱数始终为b。 代码如下: #include int city[500001]; int main() { int n, b; while(scanf("%d%d", &n, &b)) { int Max = 0, l, r, mid; if(n=

GooMaple 956

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

HDU - 4190 Distributing Ballot Boxes

Today, besides SWERC'11, another important event is taking place in Spain which rivals it in importance: General Elections. Every single resident of the country aged 18 or over is asked to vote in ord...

GJLfly的博客 340

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

hdu 4190 Distributing Ballot Boxes 二分

Today, besides SWERC'11, another important event is taking place in Spain which rivals it in importance: General Elections. Every single resident of the country aged 18 or over is asked to vote in ord...

weixin_41544329的博客 174

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

HDU - 4190 Distributing Ballot Boxes

题意:有n个城市和m个信箱(信箱可以无限大),再给出n个城市的人口,每个城市最起码要有一个信箱,该城市的人只能把信投到自己城市的信箱里,求最小的信箱大小 思路:二分,我们将信箱的大小作为我们二分的值 #include #include #include #include using namespace std; const int MAXN = 500010; int arr[MAX

那些年 1149

hdu 4190 Distributing Ballot Boxes

Distributing Ballot Boxes Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 486 Accepted Submission(s): 250 Problem Description Today, bes

记录成长的点点滴滴. . . . . 908

HDU4190Distributing Ballot Boxes

Distributing Ballot Boxes Time Limit : 20000/10000ms (Java/Other)Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 2Accepted Submission(s) : 2Problem DescriptionToday, besides SWERC'...

weixin_30701575的博客 117

【二分枚举】杭电 hdu 4190 Distributing Ballot Boxes

/* THE PROGRAM IS MADE BY PYY */ /*----------------------------------------------------------------------------// Copyright (c) 2012 panyanyany All rights reserved. URL : http://acm.hdu.edu

panyanyany(飞雨幻沙) 859

HDU - 4190 Distributing Ballot Boxes (二分 最大值最小)

HDU - 4190 Distributing Ballot Boxes (二分 最大值最小) Today, besides SWERC’11, another important event is taking place in Spain which rivals it in importance: General Elections. Every single resident of the...

weixin_43179892的博客 278

HDU-4190-Distributing Ballot Boxes

 Distributing Ballot Boxes Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 926    Accepted Submission(s): 468 Problem Description

临江仙卜算子 790

暑期集训—day1—hdu 4190— Distributing Ballot Boxes—二分,优先队列

槽点有点多。。。论一上午怎么给小白讲完高精度加减乘除以及二分。。一股绝望的气息扑面而来 四道题   1~3分别是高精度加乘除   不贴了(高精度加法刚开始被我写坏了我会说?) 直接第四题吧 Distributing Ballot Boxes Time Limit: 20000/10000 MS (Java/Others)    Memory Limi

十七是只大奶牛 417

HDU 4190 Distributing Ballot Boxes【二分答案】

题意: #define NMAX 2500002 #include #include #include #include using namespace std; int a[NMAX],n,b; int num(int mid){ int sum = 0; for(int i=0;i<n;i++){ if(a[i] % mid) s

某科学的程序员 718

HDU 4190 Distributing Ballot Boxes(二分答案)

对最大人口进行二分. #include #include #include #include using namespace std; const int maxn = 500001; int pops[maxn] ,N, B; int main(){ while(scanf("%d%d", &N, &B)){ if(N == -1 && B == -1)break; int

蚂蚁大战大象 676
上一篇: hdu 1052 Tian Ji -- The Horse Racing
下一篇: nyoj 791 Color the fence
勤勤勤能补拙
博客等级 码龄10年 60粉丝 155原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值