【蓝桥每日一题]-二分类型(保姆级教程 篇2) #砍树 #木材加工

news2024/11/25 15:46:08

今天讲二分的例题,一道是“砍树”,一道是“木材加工”

目录

题目:砍树

 思路1:

 思路2: 

题目:木材加工

  思路:


     

      

题目:砍树

          

 思路1:

     
二分查找:对高度进行二分
二分依据:该高度下砍出的木材
      

#include<bits/stdc++.h>          //砍树P1873  (二分查找)  O(nlogn)     
using namespace std;               
long long n,bz,s=0,mid,l,r,trees[1000008];
int main()
{
    scanf("%lld%lld",&n,&bz); 
    for(int i=1;i<=n;i++) 
    {
        scanf("%lld",&trees[i]);
        r=max(r,trees[i]);//找到最长木材 
    }
    while(l<=r)           //最右模板
    {
        mid=(l+r)/2; //从中间点开始作为伐木机高度
        s=0; 
        for(int i=1;i<=n;i++) 
			if(trees[i]>mid) 	s+=trees[i]-mid; //计算这个高度下砍的木材 
        if(s<bz)     //木材不足 
			r=mid-1;//减小高度增加木材 
		else 
			l=mid+1;//增加高度减小木材 
    }
    cout<<r; 
    return 0;
}

       

思路2: 

 先进行排序(从高到低),砍第i棵树时,按照第i+1棵树高度砍,则获得的新高度为(h(i+1)-h(i))*i     

(有点偏数学,不喜欢数学的小伙伴可以跳过了) 

#include<cstdio>                //砍树P1873   (贪心)(700毫秒)O(n)+O(n)*(logn)
#include<cstring>
#include<algorithm>       
using namespace std;
int tree[1000001];
int n,m;
int main()
{
    int i,num,ans;
    long long sum=0;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)    scanf("%d",&tree[i]);
    sort(tree+1,tree+n+1);           //默认按从低到高进行排序,那就倒着砍
    num=n;
    while(sum<m)
    {
        sum+=(tree[num]-tree[num-1])*(n-num+1);
        num--;
    }           
    ans=tree[num]+(sum-m)/(n-num);   //因为并不是真正的把数砍了,所以最后的高度还需要算出来
    printf("%d\n",ans);
    return 0;
}

       

       

题目:木材加工

        

 思路:

     
二分查找: 对最小段长度进行二分
二分依据: 该最小段下需要切的段数

     

#include <bits/stdc++.h>             //P2440木材加工    (二分查找)
using namespace std;
long long n, k;
long long a[1000005];
bool f(long long x) {
	long long ans = 0;
	for (int i = 1; i <= n; i++) {      //把每根木材按照x长度分成的段数相加
		ans += a[i] / x;
	}
	return ans >= k;                 //发现分的段比k多
}
int main() {
	cin >> n >> k;
	for (int i = 1; i <= n; i++) cin >> a[i];
	long long l = 0, r = 100000001;          //答案所在的区间
	long long mid;	
	while (l + 1 < r) {                    //开始二分
		mid = (l + r) / 2;
		if (f(mid)) l = mid;               //如果mid分的过多说明mid太小了,所以向右压缩
		else r = mid;                      
	}
	cout<<l<<endl;                    //输出重复的最后一个
//	while(l<=r){                     //或最右模板的
//		mid =(l+r)/2;
//		if(f(mid)) l=mid+1;
//		else r=mid-1;
//	}
//	cout<<r;
	return 0;
} 

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

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

相关文章

关注云栖大会的感受:从工业大脑到全面AI时代的进化

前言 自2009年的地方网站峰会到如今的云栖大会&#xff0c;这个盛大的科技盛事已经走过了一个多十年的漫长历程。这个会议见证了中国科技行业的崛起&#xff0c;也记录了技术的不断演化。而对我来说&#xff0c;首次接触云栖大会是在2020年&#xff0c;当年大会迁移到线上&…

从零开发基于ASM字节码的Java代码混淆插件XHood

项目背景 因在公司负责基础框架的开发设计&#xff0c;所以针对框架源代码的保护工作比较重视&#xff0c;之前也加入了一系列保护措施 例如自定义classloader加密保护&#xff0c;授权license保护等&#xff0c;但都是防君子不防小人&#xff0c;安全等级还比较低 经过调研…

【密评】商用密码应用安全性评估从业人员考核题库(十七)

商用密码应用安全性评估从业人员考核题库&#xff08;十七&#xff09; 国密局给的参考题库5000道只是基础题&#xff0c;后续更新完5000还会继续更其他高质量题库&#xff0c;持续学习&#xff0c;共同进步。 4001 多项选择题 网络和通信安全层面的通信主体一般包括哪些&…

基于Docker-consul容器服务更新与发现

目录 一、什么是服务注册与发现&#xff1a; 二、Docker-consul介绍&#xff1a; 三、consul的关键特性&#xff1a; 四、consul部署&#xff1a; 1.部署规划&#xff1a; 2.consul服务器部署&#xff1a; 2.1 建立consul服务&#xff1a; 启动consul后默认会监听5个端口&a…

管理双因素身份验证的Web应用2FAuth

什么是 2FAuth &#xff1f; 2FAuth 是一种基于 Web 的自托管替代方案&#xff0c;可替代 Google Authenticator 等一次性密码 (OTP) 生成器&#xff0c;专为移动设备和桌面设备设计。 近年来&#xff0c;双因素身份验证变得非常流行&#xff0c;2FA 现在是不可避免且至关重要的…

阿里云ECS经济型e实例ecs.e-c1m1.large性能测评

阿里云服务器ECS经济型e实例2核2G配置规格ecs.e-c1m1.large&#xff0c;CPU采用Intel Xeon Platinum架构处理器&#xff0c;e系列云服务器是阿里云面向个人开发者、学生、小微企业&#xff0c;在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器。目前云服…

C++ 类型

4.5//默认double类型 4.5f//float类型 基本内置类型 基本内置类型包含算术类型和空类型&#xff0c;算术类型包含字符、整数型、布尔值和浮点数&#xff0c;空类型不对应具体的值&#xff0c;仅用于一些特殊的场合。 算术类型 分为两类&#xff0c;整型&#xff08;包括字…

艾奇免费KTV电子相册视频制作软件

不得不承认功能特色支持添加导入图形、视频、歌曲、卡啦ok动态歌词字幕文件&#xff1a;图形文件格式支持导入jpg/jpeg/png/bmp/gif等静态图形&#xff1b;视频文件支持导入AVI/MP4/FLV/MTS/MPG/RMVB等几乎所有常见视频文件&#xff1b;歌曲格式支持mp3/wma/acc/ogg/wav等几乎所…

力扣第96题 不同的二叉搜索树 c++ 二叉搜索树 动态规划 + 数学思维

题目 96. 不同的二叉搜索树 中等 相关标签 树 二叉搜索树 数学 动态规划 二叉树 给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 示例 1&#xff1a; 输入&#…

NoSQL数据库使用场景以及架构介绍

文章目录 一. 什么是NoSQL&#xff1f;二. NoSQL分类三. NoSQL与关系数据库有什么区别四. NoSQL主要优势和缺点五. NoSQL体系框架 其它相关推荐&#xff1a; 系统架构之微服务架构 系统架构设计之微内核架构 鸿蒙操作系统架构 架构设计之大数据架构&#xff08;Lambda架构、Kap…

Halo勒索病毒:了解最新变种.halo,以及如何保护您的数据

导言&#xff1a; 在当今数字化的世界中&#xff0c;网络威胁不断演变&#xff0c;其中勒索病毒一直是网络犯罪分子的有力武器之一。在这篇文章中&#xff0c;我们将深入介绍.halo勒索病毒&#xff0c;了解它的工作方式&#xff0c;讨论如何恢复被加密的数据文件&#xff0c;并…

【网络协议】聊聊HTTPS协议

前面的文章&#xff0c;我们描述了网络是怎样进行传输数据包的&#xff0c;但是网络是不安全的&#xff0c;对于这种流量门户网站其实还好&#xff0c;对于支付类场景其实容易将数据泄漏&#xff0c;所以安全的方式是通过加密&#xff0c;加密方式主要是对称加密和非对称加密。…

vue3简单写导航anchor示例(支持点击高亮和滚动判断高亮)

1. 点击anchor, 相应的anchorlink高亮 function anchorClick(index) { forceStop.value true; time Date.now(); wheelRef.value.children[index].scrollIntoView({ block: start, behavior: smooth }); // 给一些延时, 再点亮anchor, 同时不再限制scrol…

【教3妹学编辑-算法题】环和杆

3妹&#xff1a;2哥&#xff0c;今年春节的放假安排出来了&#xff0c;今年春节放8天假&#xff0c;我们公司除夕提前放一天&#xff0c;总共9天假。 耶~~~ 2哥 :你们公司这么好啊&#xff0c; 我们公司的放假安排还没出来&#xff0c;不知道今年除夕能不能回家了… 3妹&#x…

(免费领源码)Java#MYSQL超市管理系统10428-计算机毕业设计项目选题推荐

目 录 摘要 1 绪论 1.1 研究意义 1.2国内外研究现状 1.3论文结构与章节安排 2 超市管理系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 …

openGauss-向量化执行引擎-VecUnique算子

openGauss-向量化执行引擎系列-VecUnique算子 openGauss实现了向量化执行引擎&#xff0c;达到算子级别的并行。也就是说在执行器火山模型基础上&#xff0c;一次处理一批数据&#xff0c;而不是一次一个元组。这样可以充分利用SIMD指令进行优化&#xff0c;达到指令级别并行。…

知识点滴 - 纸张的大小

关于纸张大小的描述方法 纸张大小的描述方法主要有两种&#xff0c;一种是我们经常使用的打印纸使用的A4、A3的叫法&#xff0c;这个是国际标准。 另一种是开本的叫法&#xff0c;比如16开、32开等。开本常见于书籍印刷品的规格。正规出版物基本没有使用 A4&#xff08;ISO国际…

1688阿里巴巴官方开放平台API接口获取跨境属性、跨境包裹重量、单位重量等参数调用示例说明

1688.item_get_specifications-获得跨境属性 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;注册调用key接入secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_…

2023SHCTF web方向wp

1.ezphp 看一眼&#xff0c;你大爷&#xff0c;啥玩意都给我过滤完了。 还好下面有preg_replace()/e&#xff0c;会把replacement当作php语句执行 传参pattern.*&#xff0c; .*表示任意字符&#xff0c;code{${phpinfo()}} &#xff0c;为什么这样写&#xff0c;因为,print_…

CHS零壹视频恢复程序高级版视频修复OCR使用方法

目前CHS零壹视频恢复程序监控版、专业版、高级版已经支持了OCR&#xff0c;OCR是一种光学识别系统&#xff0c;高级版最新版本中不仅仅是在视频恢复中支持OCR&#xff0c;同时视频修复模块也增加了OCR功能&#xff0c;此功能可以针对一些批量修复的视频文件&#xff08;如执法仪…