第八届其他题目解析

蓝桥杯第八届省赛本科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++第九题 分巧克力相关推荐

  1. 2013蓝桥杯java试题_蓝桥杯2013决赛java本科b组试题.doc

    蓝桥杯2013决赛java本科b组试题.doc 试题一:公式求值问题描述输入n,m,k,输出下面公式的值.其中C_n^m是组合数,表示在n个人的集合中选出m个人组成一个集合的方案数.组合数的计算公式如 ...

  2. 蓝桥杯--第八届省赛试题-电子钟程序设计

    蓝桥杯-第八届省赛试题-电子钟程序设计 题目: 思路 1.显示温度使用大赛提供的onewire.c,只需自己添加读取函数. 2.设计时钟程序,或者使用DS1302.c(这里使用的是自己写的函数) 3. ...

  3. 【蓝桥杯第八届省赛_电子钟】

    蓝桥杯第八届省赛_电子钟 修改版本 基础知识学习来自小蜜蜂老师 yyds 下面代码功能没有完全实现 有误还望大佬指正 总结分析: 第八届题目难度从我个人来说明显会比第七届难了很多,当然也可能是我自己这 ...

  4. 2012年第三届蓝桥杯C/C++程序设计本科B组决赛 拼音字母(编程大题)

    2012年第三届蓝桥杯C/C++程序设计本科B组决赛题目汇总: http://blog.csdn.net/u014552756/article/details/51399827 拼音字母 在很多软件中 ...

  5. 第十三届蓝桥杯大赛软件赛决赛C组C++

    试题 A: 斐波那契与 7 本题总分:5 分 [问题描述] 斐波那契数列的递推公式为:Fn = Fn−1 + Fn−2,其中 F1 = F2 = 1. 请问,斐波那契数列的第 1 至 20220201 ...

  6. 十二届蓝桥杯C++ 1月 中 高级组试题 第4题 病毒繁殖

    参考: 蓝桥杯大赛青少年创意编程C++ 资料集 https://blog.csdn.net/dllglvzhenfeng/article/details/122499560 第十二届蓝桥杯青少年C++ ...

  7. 蓝桥杯第八届省赛JAVA真题----k倍区间

    标题: k倍区间 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍 ...

  8. 2019【蓝桥杯】省赛 C++ A组题目

    第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组 试题A: 平方和 本题总分:5 分 [问题描述] 小明对数位中含有2.0.1.9 的数字很感兴趣,在1 到40 中这样的数包 括1.2.9.10 至3 ...

  9. 25行代码AC_蓝桥杯 2017A组省赛第九题 分巧克力(暴力优化)

    励志用少的代码做高效表达 题目描述 儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们. 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形. 为了公平起见,小明需 ...

  10. 蓝桥杯2018国赛C++B组 换零钞(简单题)

    第九届蓝桥杯大赛总决赛 C++ B组 标题:换零钞 x星球的钞票的面额只有:100元,5元,2元,1元,共4种. 小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱. ...

最新文章

  1. 删除重复记录处理(转)
  2. 最安全的js类型检测
  3. fread读取整个文件_qt如何实现大文件的加载和显示
  4. 如果不需要CSS隐藏滚动条
  5. 指针01:指针的定义与使用
  6. linux开启IP转发
  7. 2022最新仿绚丽彩虹音乐播放器完整源码
  8. php5+ssl,AS3上安装Apache2+MySQL+PHP5+Resin+SSL+GD以及webalizer(补
  9. android APP自动增量更新
  10. windows+ffmpeg+qsv实现inter核显加速视频解码编码
  11. Name or service not known, ping域名报错
  12. 《“通用语”与“兽人语”互译手册》之部落篇
  13. 漫画:旅行青蛙是什么在吸引大家
  14. 网易严选离线数仓质量建设实践
  15. 解决无法找到winRAR.exe
  16. uniGUI之UniEdit
  17. 希捷推7200.12硬盘单碟容量再提升500G
  18. 直播流代理工具 UDPXY的替代品
  19. 思辨与创新 第一章 提出问题:如何提出一个新的、好的问题?
  20. Hudi学习一:Hudi简介

热门文章

  1. memcached 快速入门
  2. 使用java7的try-resource-with语法用httpclient抓取网页并用jsoup获取网页对象
  3. 灭屏取消过温减流功能
  4. [翻译] FeSpinner
  5. JVM中也有并发GC,CMS机制
  6. 在Red Hat Enterprise Linux 上如何安装openoffice
  7. 三层结构对多语言的支持
  8. linux实现普通用户只允许使用部分命令
  9. 验证DG最大性能模式下使用ARCH/LGWR及STANDBY LOG的不同情况
  10. String 类 的 使用