蓝桥杯真题:分巧克力

2023-11-01

 

我们要求出满足条件的大的边长m。

首先我们知道最长的边长是100000,最小的边长是1,那么我们可以来二分,最初设l=1,r=100000

之后进行如下操作:

1.求中点位置mid=(l+r)/2

2.对边长mid记录每个巧克力可以分成多少块,容易想到分成的块数=(长/mid)*(宽/mid)

3.

  • 总块数<k,说明边mid大了,我们要往小的去找,r=mid-1
  • 否则,边长是满足条件的,我们要l=mid+1去找是否存在更大的边长满足总块数>=k
#include <iostream>
using namespace std;
const int N=100005;
int n,k,ans;
int chok[N][2];
int main()
{
  // 请在此输入您的代码
  cin>>n>>k;
  for(int i=0;i<n;++i)
  {
    cin>>chok[i][0]>>chok[i][1];
  }
  int l=1,r=100000;

  while(l<=r)
  {
    int mid=(l+r)/2;
    int num=0;
    for(int i=0;i<n;++i)
    {
      num+=(chok[i][0]/mid)*(chok[i][1]/mid);
    }
    if(num>=k)
    {
      if(mid>ans)
      {
        ans=mid;
      }
      l=mid+1;
    }
    else
    {
      r=mid-1;
    }
  }
  cout<<ans<<endl;
  return 0;
}

还有一种取巧的暴力解法碰巧过了,就是设一个长度是10000的边递减去测试,好像测试里边没有比10000的更小的边:

#include <iostream>
using namespace std;
const int N=100005;
int n,k;
int chok[N][2];
int main()
{
  // 请在此输入您的代码
  cin>>n>>k;
  for(int i=0;i<n;++i)
  {
    cin>>chok[i][0]>>chok[i][1];
  }
  int m=10000;
  while(true)
  {
    int sum=0,n1,n2;
    for(int i=0;i<n;++i)
    {
      n1=chok[i][0]/m;
      n2=chok[i][1]/m;
      sum+=n1*n2;
    }
    if(sum>=k)
    {
      break;
    }
    m--;
  }
  cout<<m<<endl;
  return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯真题:分巧克力 的相关文章

  • 为什么这个 IA32 汇编代码有 3 个 leaal 指令?

    我编译了这个C函数 int calc int x int y int z return x 3 y 19 z 我在 calc s 中得到了这个 我正在注释正在发生的事情 file calc c text globl calc type ca
  • Cocoa 常量名称中的“k”代表什么[重复]

    这个问题在这里已经有答案了 可能的重复 Apple 的 API 中的 k 前缀表示什么 https stackoverflow com questions 675816 what does the k prefix indicate in
  • 如何获取网络服务的状态

    如何使用 C 获取 Web 服务的状态 无论是成功完成 失败还是待处理 private void button1 Click object sender EventArgs e var url servicsURL try var myRe
  • MVC 2视图显示错误的模型信息

    我在一个项目中使用 MVC 2 但我遇到了视图问题 在控制器中我有代码 return View calendarDay 如果我调试这一行并检查 calendarDay 它会告诉我 calendarDay Id 属性等于 2 在视图中我有一些
  • ExecuteNonQueryAsync 并在 SQL 事务中提交

    我正在寻求对我创建的一段代码的帮助 我正在尝试在事务中从 C 进行异步 SQL 调用 例如我可能正在更新或删除表中的行 这是我到目前为止所拥有的 但我似乎无法找到有关在事务中执行此操作的太多信息 根据我在这里所拥有的以及到目前为止我所理解的
  • 安装/编译 pylzma(lzma python 绑定)

    我已经向作者提出了这个问题website http www joachim bauch de projects pylzma comment page 1 comment 5211 但我想我也可以在这里问 我一直在尝试使用以下设置安装 py
  • 具有 Nhibernate 设计问题的领域模型

    我正在尝试进入 DDD with C 世界 我使用NHibernate作为我的ORM工具 因此尝试开发一个PI Persistence Ignorance 模型 但是 在我的一些实体 表示为 POCOS 中 我的属性设置器中有业务规则 例如
  • 值类型数组如何存储在 .NET 对象堆中?

    在 NET中 诸如int之类的值类型对象存储在内存中 引用类型对象需要为引用和对象单独分配内存 并且对象存储在 NET对象堆中 而Array是在堆中创建的 那么int 等值类型的数组如何存储在堆中呢 这是否意味着值类型对象可以存储在堆中而无
  • 清除指针向量[重复]

    这个问题在这里已经有答案了 假设我定义了一个这样的类 class foo private std vector lt int gt v public void bar1 for int i 0 i lt 10 i int a new int
  • llvm clang 编译器上的dynamic_cast失败

    我看到一个奇怪的失败dynamic cast正在返回NULL在 clang 编译器上 但相同的代码可以在 gcc 环境下运行 您能否指出根本原因是什么 之间可能有什么区别dynamic cast关于 llvm 和 gcc 我正在使用两个编译
  • 在实体框架中不使用 Dispose 或 using()

    我一路上正在编写一个网络应用程序并学习实体框架 如果我做错了什么 我很好奇 我在查询时没有使用过 dispose 或 using 语句 我的存储库示例 public User GetUserById int sessionId var us
  • 从 Windows 选择声音并播放它们

    我有一个 WinForms 应用程序 该应用程序有一个 首选项 部分 用户可以在其中选择显示警报时播放哪些声音 是否可以有一个组合框 用户可以从 Windows 存储的声音中进行选择 例如 紧急停止 紧急蜂鸣 等 这些可以在 控制面板 gt
  • 使用 C# 在 XML 文档中查找特定值的好方法是什么?

    我正在调用 Oracle 公开的 WebService 它接受 ItemID 的输入并向我返回相应的 Item Number 我想获取从响应中包含的 XML 返回的项目编号 XML 看起来像这样
  • 设置了 OFN_ALLOWMULTISELECT 标志的 GetOpenFileName()

    我正在尝试使用 GetOpenFileName 通用对话框调用来弹出打开对话框并允许用户选择多个文件 我设置了 OFN ALLOWMULTISELECT 标志 并设置了 OFN EXPLORER 因此我得到了 新样式 文件选择框 当我设置
  • Pythonlibs3 CMake 和 macOS

    更新2 将以下两行添加到我的 CMake 文件中时 成功找到了 python 3 及其库 这只在终端中工作的原因是因为 CLion 使用其捆绑版本的 CMake 3 6 3 而我的终端使用的更新版本 3 7 2 正确找到了 python F
  • 如何打开 Outlook 已接收和阅读电子邮件

    我们有 5 个人 使用同一封电子邮件通过 Outlook 回复客户 我想设计一个程序来打开所有已发送的电子邮件 阅读它们 打开它们 找到第一个人的签名 并在他 她的计数器中添加一个数字 以便我可以得出一些统计数据 关于如何打开 Outloo
  • Web API 2 c# 中的 Google reCaptcha

    我有一个 ASP NET Web API 2 项目 我正在尝试从表单中读取 Google Captcha 我尝试了这段代码 public string Post FoundingRequest model var response Requ
  • Cmake:在自定义目录中查找 protobuf 包

    我有 cmake 3 10 x 并下载了当前的 protobuf 源 3 6 1 使用 cmake 我创建了 bin 目录 PROTOBUF SOURCE DIR bin 在其中成功构建了该库 下一步我想在我的基于 cmake 的项目中使用
  • 如何在迭代时从地图中删除?

    迭代时如何从地图中删除 喜欢 std map
  • 从 C# 调用 C++ DLL

    我想使用 C 中的 C DLL C DLL 是win32 控制台应用程序 我已成功调用它 并希望在 C 中处理来自 C 的数据 然而 C 应用程序在执行 DLL 后退出 即这一行 GetArrayFromDLL 我是 C 和 Visual

随机推荐

  • Console输出时报log4j警告解决办法

    log4j WARN Please initialize the log4j system properly org springframework context support ClassPathXmlApplicationContex
  • Spring动态代理的两种方式

    Spring动态代理的两种方式 1 Spring创建的动态代理类在哪 1 1 什么叫动态字节码技术 2 JDK的动态代理 2 1 Proxy newProxyInstance 法参数详解 2 1 编码 3 CGlib的动态代理 3 1 编码
  • 浏览器地址栏输入一个网址到页面展示网页内容的这段时间内,浏览器和服务器都发生了什么事情?

    1 在接受到用户输入的网址后 浏览器会开启一个线程来处理这个请求 对用户输入的URL地址进行分析判断 如果是HTTP协议就按照HTTP方式来处理 2 调用浏览器引擎中的对应方法 比如WebView中的loadUrl方法 分析并加载这个URL
  • UE5 添加插件

    1 编辑 gt 插件 gt 添加 2 选择插件类型 输入插件名称 设置插件目录 点击 创建插件 3 在工程目录下生成Plugins目录 而且在Plugins目录下生成各个插件的目录
  • 爽,我终于掌握了selenium图片滑块验证码

    因为种种原因没能实现愿景的目标 在这里记录一下中间结果 也算是一个收场吧 这篇文章主要是用selenium解决滑块验证码的个别案列 思路 用selenium打开浏览器指定网站 将残缺块图片和背景图片下载到本地 对比两张图片的相似地方 计算要
  • typeScript中tsconfig.json无故报错

    报错 原因 是由于该文件的同级目录下 没有ts文件 所以会报这种类似于语法错误的 只要在同级下创建一个ts文件即可
  • 回调函数的用法和好处

    回调函数的用法和好处 2009 07 01 18 19 Agzer0 分类 其他编程语言 浏览7080次 1 回调函数的功能是什么 有什么好处 有没有坏处 2 可以的话请编写一个简答的回调函数 看看怎样调用实现的 WndProc里面的不算
  • 数据结构2.4.1顺序队列

    include
  • [1] quick-cocos2d-x 介绍

    quick cocos2d x 是一个可以让您觉得 爽快 的 cocos2d x 的扩展版 基于 cocos2d x 完全的跨平台能力 优异的性能和可靠性 而 quick cocos2d x 在这一切的基础上 添加了完善的 Lua 脚本语言
  • MySQL基础语法--(标量子查询,列子查询,行子查询)

    概念 出现在其他语句内部的SELECT 语句 可以理解为嵌套在一个查询语句中的另外一个SELECT的查询语句 外部查询语句称为主查询或者外查询 分类 按照子查询出现的位置 select 后面 FROM 后面支持表子查询 WHERE 或HAV
  • C语言注释风格(函数、功能、输入、输出、返回)

    C语言编程规范 注释 规则 1 一般情况下 源程序有效注释量必须在20 以上 说明 注释的原则是有助于对程序的阅读理解 在该加的地方都加了 注释不宜太多也不能太少 注释语言必须准确 易懂 简洁 2 说明性文件 如头文件 h文件 inc文件
  • dubbo整合nacos

    文章目录 前言 一 搭建工程框架 新建maven空工程作为父工程 新建服务提供者provider模块 新建消费者 consumer模块 新建公共接口interface模块 二 各模块代码 2 1服务提供者 boot user service
  • 【Linux命令-shell】案例练习:进度条、菜单选择、fork炸弹

    目录 1 进度条 2 菜单选择 3 fork炸弹 1 进度条 progress sh文件内容如下 bin bash bar while do echo en 033 42m 033 0m en是不换行 42m是背景色 sleep 0 5 间
  • 闪烁星空背景(html/css)

    效果视频 starts 源码
  • 无需外设实现电脑远程开机

    所谓的远程开机本质上就是触发电脑电源的断电 通电功能 台式机 笔记本都是同样的道理 向日葵等远程软件的什么智能插拔 某某棒等本质上就是这个原理 并没有特殊功能 就是借助BIOS自身的功能 实现通断电触发开机 没必要花那个冤枉钱 开机原理 电
  • python爬虫网络请求超时_python爬虫多次请求超时的几种重试方法

    第一种方法 headers Dict url https www baidu com try proxies None response requests get url headers headers verify False proxi
  • Checklist设计编写规范及模板

    一 编写CHECK LIST的目的 1 保障所有的测试面都考虑到并被记录 与无线相关的接口要考虑到无线 联动优势的退款要考虑到断账日前后 2 保障TESTCASE已经覆盖所有的测试主体 3 提高TESTCASE的REVIEW通过率 二 CH
  • 用rust写一个玩具解释器2(lexer)

    词法分析器 输入 由字符 ASCII码 组成的字符串 输出 token 任务 读取输入 并且按规则输出token token 想简单点 就是一个字符串和它的类型 比如说关键字 变量名 非法字符串 所以说我们现在需要 read char sk
  • android opengl函数库之间的关系

    EGL 目录生成libEGL so eglApi cpp eglGetDisplay 触发loader加载libEGL xxx so libGLESv1 CM xxx so libGLESv2 xxx so 或者libGLES androi
  • 蓝桥杯真题:分巧克力

    我们要求出满足条件的大的边长m 首先我们知道最长的边长是100000 最小的边长是1 那么我们可以来二分 最初设l 1 r 100000 之后进行如下操作 1 求中点位置mid l r 2 2 对边长mid记录每个巧克力可以分成多少块 容易