题目 1885: [蓝桥杯][2017年第八届真题]分巧克力+二分
题目:
题目描述
儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。
小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。
为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:
- 形状是正方形,边长是整数
- 大小相同
例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。
当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?
输入
第一行包含两个整数N和K。(1 <= N, K <= 100000)
以下N行每行包含两个整数Hi和Wi。(1 <= Hi, Wi <= 100000)
输入保证每位小朋友至少能获得一块1x1的巧克力。
输出
输出切出的正方形巧克力最大可能的边长。
样例输入
2 10
6 5
5 6
样例输出
2
分析:
碰到了二分,就来总一下版子,简单题,在这不做赘述。
AC代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int M=1e5+10;
int n,m,num,ans;
int a[M],b[M];
int main()
{ans=0;scanf("%d%d",&n,&m);for(int i=0; i<n; i++){scanf("%d%d",&a[i],&b[i]);}int l=1,r=M,k,mod;while(r-l>1) //第一种二分模板{num=0;mod=(l+r)>>1;for(int i=0; i<n; i++){num+=(a[i]/mod)*(b[i]/mod);}if(num<m)r=mod;if(num>=m)l=mod;}/**while(l<=r) //第二种二分模板{num=0;mod=(l+r)>>1;for(int i=0; i<n; i++){num+=(a[i]/mod)*(b[i]/mod);}if(num<m)r=mod-1;if(num>=m){l=mod+1;k=mod;}}*//** while(l<r) //第三种二分模板{num=0;mod=(l+r)>>1;for(int i=0; i<n; i++){num+=(a[i]/mod)*(b[i]/mod);}if(num<m)r=mod;if(num>=m){l=mod+1;k=mod;}}*/printf("%d\n",k);return 0;
}
题目 1885: [蓝桥杯][2017年第八届真题]分巧克力+二分相关推荐
- 题目 1878: 蓝桥杯2017年第八届真题-青蛙跳杯子
题目 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙. ...
- 题目 1886: 蓝桥杯2017年第八届真题-包子凑数
时间限制: 1Sec 内存限制: 128MB 提交: 2378 解决: 789 题目描述 小明几乎每天早晨都会在一家包子铺吃早餐.他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子.每种蒸笼 ...
- 题目 1886: [蓝桥杯][2017年第八届真题]包子凑数(欧几里得+完全背包)
题目: 时间限制: 1Sec 内存限制: 128MB 提交: 1049 解决: 365 题目描述 小明几乎每天早晨都会在一家包子铺吃早餐.他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子. ...
- [蓝桥杯][2017年第八届真题]分考场(dfs+剪枝)
题目描述 n个人参加某项特殊考试. 为了公平,要求任何两个认识的人不能分在同一个考场. 求是少需要分几个考场才能满足条件. 输入 第一行,一个整数n(1<n<100),表示参加考试的人数. ...
- [蓝桥杯][2017年第八届真题]包子凑数(解题报告)
问题 1886: [蓝桥杯][2017年第八届真题]包子凑数 时间限制: 1Sec 内存限制: 128MB 提交: 406 解决: 118 题目描述 小明几乎每天早晨都会在一家包子铺吃早餐.他发现这家 ...
- [蓝桥杯][2017年第八届真题]小数第n位(数学)
题目描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数. 如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式. 本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始 ...
- [蓝桥杯][2017年第八届真题]小计算器(模拟)
题目描述 模拟程序型计算器,依次输入指令,可能包含的指令有 数字:'NUM X',X为一个只包含大写字母和数字的字符串,表示一个当前进制的数 运算指令:'ADD','SUB','MUL','DIV', ...
- [蓝桥杯][2017年第八届真题]合根植物
题目描述 w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列).每个格子里种了一株合根植物. 这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成 ...
- [蓝桥杯][2017年第八届真题]拉马车(String)
题目描述 小的时候,你玩过纸牌游戏吗? 有一种叫做"拉马车"的游戏,规则很简单,却很吸引小朋友. 其规则简述如下: 假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的随机的纸 ...
最新文章
- 工作如果没有方法,光靠苦力是不行的
- CCIE-LAB-第十六篇-NAT+OSPF下发默认路由+校验配置(模块一结束篇章)
- java dumpstack_Java获取执行进程的dump文件及获取Java stack
- 第4章 同余问题《信息学奥赛一本通 提高篇》
- C++语言程序设计第五版 - 郑莉-绪论(一)
- 入党对程序员有什么用_为什么程序员都喜欢用两个大屏显示器?网友:一个复制一个粘贴...
- 【c++leetcode】翻转链表
- 大年初一连夜带娃改bug:CTO把代码写成这鬼样子,被害惨了!
- 纪念自己初中的住宿生活
- 新电商正面迎战“阅读焦虑”
- css里面li标签怎么加图片_css怎么设置li标签的样式?
- 看不到同一个网络下的其他计算机,看不到局域网其他计算机怎么办
- 关于async await 等任务队列插话
- Linux----putty下载安装教程
- CCT Camera Tuning
- Python学习笔记(四)----Pywin32+Pyinstaller制作windows软件
- 创业记[01]三人行,初创的激情
- matlab验证线性卷积与圆周卷积的关系
- 2022“杭电杯”中国大学生算法设计超级联赛(8)
- 大学三年积累的教学资源分享和推荐!
热门文章
- C语言试题四之计算并输出3到n之间所有素数的平方根之和
- linux c之用命名管道实现进程通信
- Android之Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
- import 别名_Python基础找茬系列09--import和from-import的引用区别
- java中find方法_Java Document.find方法代码示例
- 最高调恋爱方式,简直“公开处刑”......
- 970页绝版资料!初高中数学与竞赛知识点+方法技巧,由苏步青当顾问,众多一线名师共同编写!...
- 女生的拳头有多厉害?
- 全球科技界最鼓舞人心领袖揭晓!马斯克第一,马云第五
- 每日一笑 | 男朋友整天沉迷游戏怎么办...?