Gift

时间限制:1000 ms  |  内存限制:65535 KB
难度:2

描述

HEIHEI was planning to send his friends some necklaces as gifts. To show sincerity, he decided to make the necklaces all by himself. He bought some kinds of pearls and each kind of pearls has a different color from others. He wanted to make each necklace consisted of M pearls from different kinds, that’s what he called M-perfect necklace.HEIHEI wanted to know the maximum number of necklaces he could send out to his friends. The number of pearls of each kind and M are given,and now you are asked tell HEIHEI how many M-perfect necklaces he could make at most。

输入

You will be given a number of cases in the input . Each case starts with a positive integer n(n<=1000),which is the number of fifferent kingds;
The second line contains n positive numbers represent for the number of pearls of each kind which will not exceed 2000.
The third line contains a positive number(1<=m<=100).
The end of input is indicated by a line containing n=0.

输出

For each test case , output a line containing the maximum number of M-perfect necklace.

样例输入

5
3 3 3 3 3
5
6
1 2 3 4 5 6
5
0

样例输出

3
3

题意:给定n种不同颜色的珠子,每种珠子的数目不超过2000,问最多可以组成多少条M完美项链。一条M完美项链是由M颗不同颜色的珠子组成的。

解题思路:如果直接求解最优性是比较困难的。但是,如果考虑本题更弱一点的形式,则会比较简单:给定n种珠子及其数目,问是否能够组成x条M完美链。显然每种珠子最多只能用x次,而只要每种珠子可用的数目的总和大于或等于xXM,一定可以构造出x条M完美链。因此,本题可以结合二分上界和判断可行性来进行求解。二分范围的下界可以设为0,上界则可设为所有珠子数目总和除以M的商。


#include <stdio.h>
int main()
{int n, i, a[1002], m;while(~scanf("%d", &n) && n){for(i = 0; i < n; i++)scanf("%d", &a[i]);scanf("%d", &m);if(n<m){printf("0\n");continue;}int low = 0, high = 2000000 /*  n*max(a[i])/m   */, mid, ans;while(low <= high) {mid = (low + high) / 2; //二分项链条数int sum = 0;  //记录可用珠子的数目for(i = 0; i < n; i++){if(a[i] > mid) //珠子用不完sum += mid;elsesum += a[i];}if(sum >= mid * m) //可用珠子数可以组成m条项链{low = mid + 1;ans = mid;  //记录条数}elsehigh = mid - 1;}printf("%d\n",ans);}return 0;
}

NYOJ -804 Gift (二分)相关推荐

  1. NYOJ 904 search 二分查找

    search 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 游戏积分的排行榜出来了,小z想看看得某个积分的人是谁.但是由于人数很多,他自己找很浪费时间,所以他想请你帮忙 ...

  2. NYOJ 229 工程 二分+dp检验

    工程 时间限制:1000 ms  |  内存限制:65535 KB 描述 有n个工人做两个工程A和B,每个工程都被分为相同的m份,给你第i个工人做A中的一份需要的时间Xi秒,和做B中的一份所需时间Yi ...

  3. NYOJ疯牛【二分】

    疯牛 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 4 描述 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些 ...

  4. NYOJ 762 第k个互质数(二分 + 容斥)

    第k个互质数 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 两个数的a,b的gcd为1,即a,b互质,现在给你一个数m,你知道与它互质的第k个数是多少吗?与m互质的数按 ...

  5. CodeForces - 1538G Gift Set(二分)

    题目链接:点击查看 题目大意:给出 a,b,x,ya,b,x,ya,b,x,y,分别表示有 aaa 个蓝色糖果和 bbb 和红色糖果,现在有两种打包方式: xxx 个蓝色糖果和 yyy 个红色糖果 y ...

  6. Codeforces Round #725 (Div. 3) G. Gift Set 二分

    传送门 文章目录 题意: 思路: 题意: 有两种物品分别有x,yx,yx,y个,每次可以从一个拿出aaa个,另一个拿出bbb个分成一组,问最多能分成多少组. 思路: 这个题有一个显然的单调性,所以二分 ...

  7. nyoj 720 项目安排(dp+二分优化)

    项目安排 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时间,假设做完每个 ...

  8. NYOJ练习题 删除元素(二分查找)

    删除元素 时间限制:1000 ms  |  内存限制:65535 KB 描述 题意很简单,给一个长度为n的序列,问至少删除序列中多少个数,使得删除后的序列中的最大值<= 2*最小值 输入 多组测 ...

  9. 【牛客 - 370E】Rinne Loves Gift(Bellman_Ford判负环,二分,分数规划)

    题干: 链接:https://ac.nowcoder.com/acm/contest/370/E 来源:牛客网 Rinne 喜欢礼物,也喜欢送礼物 圣诞节快到了,Rinne 要去给给住在城市里的人送礼 ...

最新文章

  1. 通信基站电池,再也不怕丢了
  2. docker 安装MongoDB以及设置用户
  3. java的集合:List、Set和Map
  4. pptp client
  5. 水晶报表,解决——提示“您请求的报表需要更多信息.”
  6. 图的遍历:BFS和DFS
  7. 头条+腾讯 双杀面经(NLP实习)
  8. WCF跨域 这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP...
  9. 简单暴力到dp的优化(中级篇)
  10. 初识linux 命令(一)
  11. matlab矩阵中的 *、/、\、.*
  12. Java中去除字符串中空格的方法
  13. 安卓应用安全指南 5.6.1 密码学 示例代码
  14. 初学react.js
  15. 私人订制,一份专属你的数据分析课程!
  16. lbs的核心技术都有哪些?_直击现场 | 腾讯云“揭秘智慧出行核心技术与创新实践”活动完美落幕!...
  17. Android开发问题汇总
  18. 中缀表达式变为后缀表达式
  19. 林利军2018年致投资人的信:这是一个极致者胜的时代
  20. C语言规定 程序中各函数之间_,C语言规定,程序中各函数之间________。 答案:既允许直接递归调用也允许间接递归调用...

热门文章

  1. 互斥锁、共享内存方式以及生产者消费者模型
  2. Java GUI:将JPanel添加进JScrollPane
  3. 微信平台开发者:桥梁上的运动员
  4. 企业管理 为什么老板再难,也不会放弃?而员工做得不顺,就想逃走?
  5. Linux上常用命令整理(二)—— paste
  6. hdu1025 Constructing Roads In JGShining#39;s Kingdom (nlogn的LIS)
  7. VS2010安装HTML5插件
  8. 全球增长最快域名解析商Top10:DNSPod新网上榜
  9. window 服务(一)
  10. Type of data in energy dashboard