题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4190

Distributing Ballot Boxes

Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1065    Accepted Submission(s):
536

Problem Description
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 order to
choose representatives for the Congress of Deputies and the Senate. You do not
need to worry that all judges will suddenly run away from their supervising
duties, as voting is not compulsory.
The administration has a number of
ballot boxes, those used in past elections. Unfortunately, the person in charge
of the distribution of boxes among cities was dismissed a few months ago due to
nancial restraints. As a consequence, the assignment of boxes to cities and the
lists of people that must vote in each of them is arguably not the best. Your
task is to show how efficiently this task could have been done.
The only
rule in the assignment of ballot boxes to cities is that every city must be
assigned at least one box. Each person must vote in the box to which he/she has
been previously assigned. Your goal is to obtain a distribution which minimizes
the maximum number of people assigned to vote in one box.
In the first case
of the sample input, two boxes go to the fi rst city and the rest to the second,
and exactly 100,000 people are assigned to vote in each of the (huge!) boxes in
the most efficient distribution. In the second case, 1,2,2 and 1 ballot boxes
are assigned to the cities and 1,700 people from the third city will be called
to vote in each of the two boxes of their village, making these boxes the most
crowded of all in the optimal assignment.
 
Input
The fi rst line of each test case contains the integers
N (1<=N<=500,000), the number of cities, and B(N<=B<=2,000,000), the
number of ballot boxes. Each of the following N lines contains an integer
ai,(1<=ai<=5,000,000), indicating the population of
the ith city.
A single blank line will be included after each
case. The last line of the input will contain -1 -1 and should not be
processed.
 
Output
For each case, your program should output a single
integer, the maximum number of people assigned to one box in the most efficient
assignment.
 
Sample Input
2 7
200000
500000
 
 
4 6
120
2680
3400
200
 
 
-1 -1
 
Sample Output
100000
1700
 
 
题目大意:有n个城市,b个投票箱,接下去的是每个城市的人口数,最后输出每个投票箱的容量是多少。
题目思路:对投票数进行二分,然后对箱子数进行匹配,人口数除以箱子的容量就是城市分配的箱子数。
 
详见代码。
 #include <iostream>
#include <cstdio>
#include <cmath> using namespace std; int main ()
{
int a[];
int n,b,ans,Max;
while (~scanf("%d%d",&n,&b))
{
if (n==-&&b==-)
break;
Max=;
for (int i=;i<n;i++)
{
scanf("%d",&a[i]);
if (Max<a[i])
Max=a[i];
}
int l=;
int r=Max;
int sum,mid;
while (r>=l)
{
sum=;
mid=(r+l)/;
for (int i=;i<n;i++)
{
sum+=ceil(a[i]*1.0/mid);
}
if (sum>b)
l=mid+;
else
r=mid-,ans=mid;
}
printf ("%d\n",ans);
}
return ;
}

hdu 4190 Distributing Ballot Boxes(贪心+二分查找)的更多相关文章

  1. HDU 4190 Distributing Ballot Boxes【二分答案】

    题意:给出n个城市,n个城市分别的居民,m个盒子,为了让每个人都投上票,问每个盒子应该装多少张票 二分盒子装的票数, 如果mid<=m,说明偏大了,r应该向下逼近 ,r=mid 如果mid> ...

  2. hdu 4190 Distributing Ballot Boxes 二分

    Distributing Ballot Boxes Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  3. Distributing Ballot Boxes

    Distributing Ballot Boxes http://acm.hdu.edu.cn/showproblem.php?pid=4190 Time Limit: 20000/10000 MS ...

  4. 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II

    题目传送门 /* 贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找.贪心的思想是每次找到一个aj使得和为p-1(如果有的话) 当然有可能两个数和超过p,那么an的值最优,每 ...

  5. Codeforces Round #768 (Div. 2) D. Range and Partition // 思维 + 贪心 + 二分查找

    The link to problem:Problem - D - Codeforces   D. Range and Partition  time limit per test: 2 second ...

  6. Codeforces Round #307 (Div. 2) C. GukiZ hates Boxes 贪心/二分

    C. GukiZ hates Boxes Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/551/ ...

  7. Holedox Eating HDU - 4302 2012多校C 二分查找+树状数组/线段树优化

    题意 一个长度$n<=1e5$的数轴,$m<=1e5$个操作 有两种一些操作 $0$  $x$ 在$x$放一个食物 $1$ 一个虫子去吃最近的食物,如果有两个食物一样近,不转变方向的去吃 ...

  8. BZOJ2796[Poi2012]Fibonacci Representation——贪心+二分查找

    题目描述 给出一个正整数x,问x最少能由多少个Fibonacci数加减算出. 例如1070=987+89-5-1,因此x=1070时答案是4. 输入 第一行一个正整数q (q<=10),表示有q ...

  9. HDU 5265 pog loves szh II (二分查找)

    [题目链接]click here~~ [题目大意]在给定 的数组里选两个数取模p的情况下和最大 [解题思路]: 思路见官方题解吧~~ 弱弱献上代码: Problem : 5265 ( pog love ...

随机推荐

  1. maven Tomcat idea 热部署

    1.首先得有maven项目 2.配置tomcat,可以访问页面管理项目 修改: /conf/tomcat-users.xml <role rolename="manager-gui&q ...

  2. MAC锁屏不断网(快捷键启用屏保)

    第一步:要设定锁定输入密码的设置,进入'系统偏好设置''安全性与隐私',将选项'进入睡眠或开始屏幕保护程序后'打勾,选'立即'. 第二步:到'launchpad'中的'其他'文件夹打开'Automat ...

  3. 限制玻尔兹曼机(Restricted Boltzmann Machine)RBM

    假设有一个二部图,每一层的节点之间没有连接,一层是可视层,即输入数据是(v),一层是隐藏层(h),如果假设所有的节点都是随机二值变量节点(只能取0或者1值)同时假设全概率分布满足Boltzmann 分 ...

  4. 海盗船长小米首页小船来回摆动CSS3.0效果

    海盗船长小米首页小船来回摆动CSS3.0效果,偶然之间看到的,就写了一个. <!DOCTYPE html> <html lang="en"> <hea ...

  5. wmware的vmnet0、vmnet1、vmnet8

    用vmware安装虚拟机后会出现三种网卡: 1.vmnet0:桥接网卡,虚拟机相当于一台实体机,可以自用访问与被访问及上网. 在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机, ...

  6. BZOJ1087:[SCOI2005]互不侵犯——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1087 Description 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王 ...

  7. 洛谷 P4495 [HAOI2018]奇怪的背包 解题报告

    P4495 [HAOI2018]奇怪的背包 题目描述 小\(C\)非常擅长背包问题,他有一个奇怪的背包,这个背包有一个参数\(P\),当他 向这个背包内放入若干个物品后,背包的重量是物品总体积对\(P ...

  8. Linux实验二

    一        第一个实验 Linux基础 1 通过娄老师关于分析学霸学渣的前言 明白了真正的学习一门功课应该是思考本质 而不是纯属记忆 2 全部的命令如下 Linux命令格式:command [o ...

  9. JavaScript SandBox沙箱设计模式

    沙箱模式常见于YUI3 core,它是一种采用同一构造器(Constructor)生成彼此独立且互不干扰(self-contained)的实例对象,而从避免污染全局对象的方法. 命名空间 JavaSc ...

  10. [解决] User [dr.who] is not authorized to view the logs for application

    在hadoop集群启用权限控制后,发现job运行日志的ui访问不了, User [dr.who] is not authorized to view the logs for application ...