蓝桥杯2017省赛:分巧克力|枚举到二分

题目链接:

https://www.lanqiao.cn/problems/99/learning/?page=1&first_category_id=1&second_category_id=3&name=%E5%88%86%E5%B7%A7%E5%85%8B%E5%8A%9B

说明:

首先要注意题目的信息,要保证k个小朋友都至少获得一块1*1的巧克力,那么至少要分出 k块巧克力才行,这是作为二分的重要条件。并且注意要求:分出的每一块巧克力是大小相同的正方形,所以就是对n块巧克力的每个巧克力,都按同样的方式切。

能切出的巧克力总数:对于一块巧克力,能分出的正方形数量是(长/正方形边长) *(宽/正方形边长),必须长和宽分别除以,不能先长*宽 再除以 边长平方。因为能切出的数量必须是长和宽分别满足的最大数量相乘。比如1*8不能切出一块2*2的,如果按长*宽 再除以 边长平方就可以。

二分时需要注意的都写在注释了:当取l=mid,找边界最大值的时候,算mid的时候要+1,不然可能会出现死循环(当l=r-1时,条件为true)。除以2用右移代替提高效率。

再顺带一提,pair元素的访问方法:访问两个元素分别用.first,.second访问。

代码部分:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;
typedef pair<int,int> pii; 
int n,k;//n块巧克力,k个朋友,至少要分出k块 
pii hw[N]; 
int ans=0;
int check(int x){int num=0;for(int i=0;i<n;i++){
//对于一块巧克力,能分出的正方形数量是(长/正方形边长) *(宽/正方形边长),必须分别除以
//因为必须满足长和宽都能分够相应的数量num+=((hw[i].first/x)*(hw[i].second/x));if(num>=k) return 1;}return 0;
}signed main() {cin.tie(0);cout.tie(0);int mx=0;cin>>n>>k;for(int i=0;i<n;i++){cin>>hw[i].first>>hw[i].second;if(hw[i].first>mx) mx=hw[i].first;if(hw[i].second>mx) mx=hw[i].second;}int r=mx,l=1;
//二分,注意当取l=mid,找边界最大值的时候,算mid的时候要+1,不然可能会出现死循环,
//当l=r-1时,不加一可能会死循环while(l<r){int mid=(l+r+1)>>1;if(check(mid)) l=mid;else r=mid-1;}cout<<l;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/771963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

供应链 | 顶刊OR论文精读:在线最小峰值作业调度的竞争算法

Competitive Algorithms for the Online Minimum Peak Job Scheduling 本文为OR期刊论文&#xff0c;原文信息&#xff1a; Clia Escribe, Michael Hu, Retsef Levi (2023) Competitive Algorithms for the Online Minimum Peak Job Scheduling. Operations Research. Article…

Flutter 获取系统是否是暗黑模式的方式

有两种方式可以获取到 1. 不使用Context final brightness SchedulerBinding.instance.platformDispatcher.platformBrightness; bool isDarkMode brightness Brightness.dark;注意&#xff01;如果是在程序入口使用&#xff0c;需要加上下面语句 WidgetsFlutterBinding.…

ZYNQ学习之PetaLinux开发环境搭建

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ FTP&#xff1a;File Transfer Protocol 一、Ubuntu 和 Windows 文件互传 1.1、开启 Ubu…

【git分支管理策略】如何高效的管理好代码版本

目录 1.分支管理策略 2.我用的分支管理策略 3.一些常见问题 1.分支管理策略 分支管理策略就是一些经过实践后总结出来的可靠的分支管理的办法&#xff0c;让分支之间能科学合理、高效的进行协作&#xff0c;帮助我们在整个开发流程中合理的管理好代码版本。 目前有两套Git…

Flutter运行MacOs网络请求报错Unhandled Exception: DioException [connection error]:...

报错信息 [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: DioException [connection error]: The connection errored: Connection failed This indicates an error which most likely cannot be solved by the library. Error: SocketException: …

【线段树】第十三届蓝桥杯省赛C++ A组 Java C组 Python A组/B组《最长不下降子序列》(C++)

【题目描述】 给定一个长度为 N 的整数序列&#xff1a;,,⋅⋅⋅,。 现在你有一次机会&#xff0c;将其中连续的 K 个数修改成任意一个相同值。 请你计算如何修改可以使修改后的数列的最长不下降子序列最长&#xff0c;请输出这个最长的长度。 最长不下降子序列是指序列中的…

c# 执行动态编译的方法

在C#中执行动态编译的一种方法是使用 CSharpCodeProvider 类。这类可以用来编译和执行C#代码&#xff0c;下面是一个简单的例子&#xff1a; using System; using System.CodeDom.Compiler; using Microsoft.CSharp; public class Program {public static void Main(){// 创建…

python每日分析练习:产品季度销售的比较分析

这次我们将关注一家零售公司的季度销售分析。 假设场景 一家零售公司希望分析其过去一年内各季度的销售表现&#xff0c;以便更好地理解其业务趋势&#xff0c;评估不同产品类别的表现&#xff0c;并优化未来的销售策略。 分析目的 理解季度销售趋势&#xff1a;分析公司整体…

Mac 装 虚拟机 vmware、centos7等

vmware&#xff1a; https://www.vmware.com/products/fusion.html centos7 清华镜像&#xff1a; 暂时没有官方的 m1 arm架构镜像 centos7 链接: https://pan.baidu.com/s/1oZw1cLyl6Uo3lAD2_FqfEw?pwdzjt4 提取码: zjt4 复制这段内容后打开百度网盘手机App&#xff0c;操…

C语言例4-7:格式字符f的使用例子

%f&#xff0c;实型&#xff0c;小数部分为6位 代码如下&#xff1a; //格式字符f的使用例子 #include<stdio.h> int main(void) {float f 123.456;double d1, d2;d11111111111111.111111111;d22222222222222.222222222;printf("%f,%12f,%12.2f,%-12.2f,%.2f\n&qu…

服务运营|香港大学雷骁:收益管理中价格歧视的公平性

编者按&#xff1a; INFORMS George B. Dantzig Dissertation Award 用于表彰运筹学和管理科学领域中具有创新性和实用性的最佳毕业设计。香港大学助理教授雷骁题为“Revenue Management in Video Games and With Fairness” 是这一奖项2023年度的提名者之一。 这篇毕业设计重…

github vscode 笔记

目录 前言1. 新建代码库2. 下载代码到本地3. 更新代码并上传到github 前言 github方便多人协作维护代码。该笔记记录了下面三个过程&#xff1a; 在github上新建代码库&#xff0c;下载代码到本地&#xff0c;将更新代码并上传到github 1. 新建代码库 2. 下载代码到本地 链…

中国赛道领跑之争:安踏将耐克越甩越远

一双鞋、一件衣服每被穿一次&#xff0c;消费者就会把它背后的品牌和自身的体验联系起来&#xff0c;做出评判。所以&#xff0c;如果说有什么领域能充分展示国产品牌的发展进步&#xff0c;鞋服一定包含在内&#xff0c;尤其是强调专业性的体育运动市场。 一年前的2023年3月&…

【Python版】手把手带你如何进行Mock测试

什么是mock&#xff1f; mock测试是以可控的方式模拟真实的对象行为。程序员通常创造模拟对象来测试对象本身该具备的行为&#xff0c;很类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为 为什么要使用Mock&#xff1f; 之所以使用mock测试&#xff0c;是因为真…

Redis基础命令汇总及详解

本篇笔记将汇总 Redis 基础命令&#xff0c;包括几个常用的通用命令&#xff0c;和各个类型的数据的操作&#xff0c;包括字符串、哈希、列表、集合、有序集合等在内的基本操作。 以下是本篇笔记目录&#xff1a; 通用命令字符串命令哈希命令列表命令集合命令有序集合命令 1…

uniapp微信小程序_computed_计算BMI

一、computed的用法还有它是什么&#xff1f; 首先它叫计算属性&#xff0c;顾名思义他是用来计算属性&#xff0c;计算你在data模板上定义的属性&#xff08;其实在插值表达式也能直接计算但是首先太长了在{{}}里面写那么多不好看&#xff0c;还有其他特点我在下面一起说&…

Sora模型的应用场景有哪些呢

Sora模型的应用场景相当广泛&#xff0c;它可以根据文本提示生成视频&#xff0c;使得视频内容创作变得更加高效和灵活。以下是一些Sora模型的主要应用场景&#xff1a; 文生视频&#xff1a;通过ChatGPT等工具写剧本&#xff0c;然后使用Sora模型根据剧本制作电影或视频内容。…

paramiko,一个强大的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个强大的 Python 库 - paramiko。 Github地址&#xff1a;https://github.com/paramiko/paramiko 在网络编程中&#xff0c;远程操作是一项非常常见的需求&#xff0c;特别是…

[Java基础揉碎]抽象类

目录 通过问题引出 介绍 关键点 细节 ​编辑 抽象类的最佳设计模式--模版设计模式 1.先用最容易想到的方法 2.分析问题&#xff0c;提出使用模板设计模式 通过问题引出 假如我们有个动物类, 动物都有eat吃的方法, 但是具体吃什么, 我们不知道, 因为是什么动物我们不知道…

qt QProcess学习

QProcess简介 QProcess可以用于启动外部程序&#xff0c;它提供了一系列函数来启动、控制和与外部进程进行交互。 作用&#xff1a; 启动外部进程&#xff1a; 通过start函数进程状态和控制&#xff1a;判断进程是否正在运行、等待进程完成、终止进程等。如stateChanged信号进…