蓝桥杯第八届省赛本科B组C/C++第九题 分巧克力
第八届其他题目解析
蓝桥杯第八届省赛本科B组C/C++第九题 分巧克力
儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。
小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:
1. 形状是正方形,边长是整数
2. 大小相同例如一块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资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms
二分答案
我们统计出最大的边长 从1到mx 二分+验证
复杂度O(nlogn)
注意 验证方法:
h*w的长方形 能划分出几个 x*x 的正方形呢 答案是 (h/x)*(w/x) 除法是整除
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
typedef struct {int h,w;
}node;
const int maxn=1e5+7;
node a[maxn];
int n,k,mx=-1;
bool check(int x){//验证答案int cnt=0;for(int i=0;i<n;i++){cnt+=(a[i].h/x)*(a[i].w/x);}if(cnt>=k)return true;else return false;
}int main(){scanf("%d%d",&n,&k);for(int i=0;i<n;i++){scanf("%d%d",&a[i].h,&a[i].w);if(a[i].w>mx)mx=a[i].w;if(a[i].h>mx)mx=a[i].h;}//二分答案int l=1,r=mx,ans;while(l<=r){int mid=(l+r)/2;if(check(mid)){ans=mid;l=mid+1;}else{r=mid-1;}}printf("%d\n",ans);return 0;
}
蓝桥杯第八届省赛本科B组C/C++第九题 分巧克力相关推荐
- 2013蓝桥杯java试题_蓝桥杯2013决赛java本科b组试题.doc
蓝桥杯2013决赛java本科b组试题.doc 试题一:公式求值问题描述输入n,m,k,输出下面公式的值.其中C_n^m是组合数,表示在n个人的集合中选出m个人组成一个集合的方案数.组合数的计算公式如 ...
- 蓝桥杯--第八届省赛试题-电子钟程序设计
蓝桥杯-第八届省赛试题-电子钟程序设计 题目: 思路 1.显示温度使用大赛提供的onewire.c,只需自己添加读取函数. 2.设计时钟程序,或者使用DS1302.c(这里使用的是自己写的函数) 3. ...
- 【蓝桥杯第八届省赛_电子钟】
蓝桥杯第八届省赛_电子钟 修改版本 基础知识学习来自小蜜蜂老师 yyds 下面代码功能没有完全实现 有误还望大佬指正 总结分析: 第八届题目难度从我个人来说明显会比第七届难了很多,当然也可能是我自己这 ...
- 2012年第三届蓝桥杯C/C++程序设计本科B组决赛 拼音字母(编程大题)
2012年第三届蓝桥杯C/C++程序设计本科B组决赛题目汇总: http://blog.csdn.net/u014552756/article/details/51399827 拼音字母 在很多软件中 ...
- 第十三届蓝桥杯大赛软件赛决赛C组C++
试题 A: 斐波那契与 7 本题总分:5 分 [问题描述] 斐波那契数列的递推公式为:Fn = Fn−1 + Fn−2,其中 F1 = F2 = 1. 请问,斐波那契数列的第 1 至 20220201 ...
- 十二届蓝桥杯C++ 1月 中 高级组试题 第4题 病毒繁殖
参考: 蓝桥杯大赛青少年创意编程C++ 资料集 https://blog.csdn.net/dllglvzhenfeng/article/details/122499560 第十二届蓝桥杯青少年C++ ...
- 蓝桥杯第八届省赛JAVA真题----k倍区间
标题: k倍区间 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍 ...
- 2019【蓝桥杯】省赛 C++ A组题目
第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组 试题A: 平方和 本题总分:5 分 [问题描述] 小明对数位中含有2.0.1.9 的数字很感兴趣,在1 到40 中这样的数包 括1.2.9.10 至3 ...
- 25行代码AC_蓝桥杯 2017A组省赛第九题 分巧克力(暴力优化)
励志用少的代码做高效表达 题目描述 儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们. 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形. 为了公平起见,小明需 ...
- 蓝桥杯2018国赛C++B组 换零钞(简单题)
第九届蓝桥杯大赛总决赛 C++ B组 标题:换零钞 x星球的钞票的面额只有:100元,5元,2元,1元,共4种. 小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱. ...
最新文章
- 删除重复记录处理(转)
- 最安全的js类型检测
- fread读取整个文件_qt如何实现大文件的加载和显示
- 如果不需要CSS隐藏滚动条
- 指针01:指针的定义与使用
- linux开启IP转发
- 2022最新仿绚丽彩虹音乐播放器完整源码
- php5+ssl,AS3上安装Apache2+MySQL+PHP5+Resin+SSL+GD以及webalizer(补
- android APP自动增量更新
- windows+ffmpeg+qsv实现inter核显加速视频解码编码
- Name or service not known, ping域名报错
- 《“通用语”与“兽人语”互译手册》之部落篇
- 漫画:旅行青蛙是什么在吸引大家
- 网易严选离线数仓质量建设实践
- 解决无法找到winRAR.exe
- uniGUI之UniEdit
- 希捷推7200.12硬盘单碟容量再提升500G
- 直播流代理工具 UDPXY的替代品
- 思辨与创新 第一章 提出问题:如何提出一个新的、好的问题?
- Hudi学习一:Hudi简介