【算法通关指南:算法基础篇】二分答案专题:1.木材加工 2.砍树

【算法通关指南:算法基础篇】二分答案专题:1.木材加工 2.砍树
在这里插入图片描述
🔥小龙报:个人主页
🎬作者简介:C++研发,嵌入式,机器人方向学习者
❄️个人专栏:《算法通关指南 》
永远相信美好的事情即将发生
在这里插入图片描述

文章目录


前言

二分答案是算法竞赛与笔试中极具技巧性的高分解法,核心思路是将复杂求解转化为简洁的二分+判定,专门解决「最大值最小」「最小值最大」等经典问题。本文从原理到实战,结合两道高频例题,带你从零掌握二分答案的核心逻辑与代码模板,轻松搞定同类题型。

一、二分答案

二分答案准确来说,应该叫做「二分答案 + 判断」
二分答案可以处理大部分「最大值最小」以及「最小值最大」的问题。如果「解空间」在从小到大的「变化」过程中,「判断」答案的结果出现「二段性」,此时我们就可以「二分」这个「解空间」,通过「判断」,找出最优解。

二、二分答案经典算题

2.1 木材加工

2.1.1题目

链接:
木材加工

在这里插入图片描述

2.1.2 算法原理

2.1.3 代码

//木材加工 #include <iostream> using namespace std; const int N=1e5+10; typedef long long LL;LL a[N],n,k;//计算在切割长度为x情况下切几段 LLcacl(LL x){LL cnt =0;for(int i =1; i <= n; i++) cnt += a[i]/ x;return cnt;} int main(){ cin >> n >> k;for(int i =1; i <= n; i++) cin >> a[i]; int l =0, r =1e8;while(l < r){LL mid =(l + r +1)/2;if(cacl(mid)>= k) l = mid;else r = mid -1;} cout << l << endl;return0;}

2.2 砍树

2.2.1 题目

链接:砍树

在这里插入图片描述

2.2.2 算法原理

设伐木机的高度为H ,能得到的木材为C 。根据题意,我们可以发现如下性质,:
• 当H 增大的时候,C 在减小。
• 当H 减小的时候,C 在增大。
那么在整个「解空间」里面,设最终的结果是ret ,于是有:
• 当H ≤ ret 时C>=M , 也就是「伐木机的高度」大于等于「最优高度」时,能得到的木材「大于等于」M 。
• 当H > ret 时C < M , 也就是「伐木机的高度」小于等于「最优高度」时,能得到的木材「小于」M 。

2.2.3 代码

//EKO/ 砍树 #include <iostream> using namespace std; const int N=1e6+10; typedef long long LL;LL a[N],n,m;LLcacl(LL mid){LL ret =0;for(int i =1; i <= n; i++){if(a[i]- mid >0) ret += a[i]- mid;}return ret;} int main(){ cin >> n >> m;for(int i =1; i <= n; i++) cin >> a[i];LL l =1, r =2e9;while(l < r){LL mid =(l + r +1)/2;if(cacl(mid)>= m) l = mid;else r = mid -1;} cout << l << endl;return0;}

总结与每日励志

✨二分答案的关键,是抓住解空间的二段性,通过二分缩小范围、用判断函数验证合法性,思路清晰、效率极高。掌握这一思维,不仅能拿下算法题,更能学会用逻辑拆解难题。前路漫漫亦有收获,坚持刷题、稳步进阶,永远相信美好的事情即将发生,你付出的每一份努力,都在为更优秀的自己铺路。 永远相信美好的事情即将发生

在这里插入图片描述

Read more

【人工智能】Transformers之Pipeline(二十七):蒙版生成(mask-generation)

【人工智能】Transformers之Pipeline(二十七):蒙版生成(mask-generation)

目录 一、引言  二、蒙版生成(mask-generation) 2.1 概述 2.2 facebook/sam-vit-base 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数  2.3.3 pipeline对象返回参数 2.4 pipeline实战 2.5 模型排名 三、总结 一、引言  pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为音频(Audio)、计算机视觉(Computer vision)、自然语言处理(NLP)、多模态(

By Ne0inhk
【Unity-AI开发篇】| Unity-MCP最新指南:让AI接管游戏开发

【Unity-AI开发篇】| Unity-MCP最新指南:让AI接管游戏开发

* 前言 * 【Unity-AI开发篇】| Unity-MCP最新指南:让AI接管游戏开发 * 一、🧐 MCP是什么? * 1.1 MCP介绍 * 1.2 为什么要配置MCP? * 1.3 效果展示 * 1.4 使用说明及下载 * 二、🚀MCP安装步骤 * 2.1 前提条件 * 2.2 安装 Unity-MCP包(桥接组件) * 2.2 MCP配置 * 三、🎈Trae配置 * 3.1 添加MCP配置 * 3.2 创建一个智能体并添加Unity-MCP * 3.3 使用AI开发功能 * 总结 前言 * 在人工智能飞速发展的今天,大语言模型早已不仅限于聊天和文本生成。 * 它们开始能够使用工具,与环境进行交互,从而执行复杂任务。 * 对于广大游戏开发者而言,

By Ne0inhk
AI Agent 平台横评:ZeroClaw vs OpenClaw vs Nanobot

AI Agent 平台横评:ZeroClaw vs OpenClaw vs Nanobot

AI Agent 平台横评:ZeroClaw vs OpenClaw vs Nanobot 前言 在之前的文章中,我们详细介绍了 ZeroClaw 的功能特性和安装部署方法。本文将从多个维度对当前主流的 AI Agent 平台进行横向对比,帮助开发者选择最适合自己项目的工具。 一、对比产品概述 1.1 ZeroClaw ZeroClaw 是基于 100% Rust 编写的轻量级 AI Agent 基础设施,强调高性能和安全性。 * 语言:Rust * 特点:二进制仅 ~3.4 MB,启动极快,内存占用低 * GitHub:https://github.com/theonlyhennygod/zeroclaw 1.2 OpenClaw

By Ne0inhk
AI来了,架构师却更难了?揭秘技术浪潮下的稀缺真相

AI来了,架构师却更难了?揭秘技术浪潮下的稀缺真相

当ChatGPT、Copilot等AI工具席卷软件开发领域,一种乐观论调曾甚嚣尘上:AI将降低编程门槛,催生更多技术人才,甚至让架构师岗位变得“唾手可得”。但现实却与这种预期背道而驰,AI非但没有让架构师数量激增,反而可能加剧其稀缺性。这并非危言耸听,而是由架构师职业的本质属性、AI技术的应用边界以及行业人才成长规律共同决定的。架构师从来不是“代码堆砌者”,而是“系统设计者与问题解决者”,其成长需要跨越理论与实践的双重门槛,而AI在简化初级编程的同时,也为高阶能力的培养设置了新的障碍。 一、架构师的成长:无法被AI捷径跨越的“双重门槛” 架构师的稀缺性,本质上源于其成长路径的“反速成性”。与初级开发工程师不同,架构师需要同时具备“深厚的理论根基”和“海量的实践沉淀”,这两道门槛共同构成了职业发展的“护城河”,而AI工具恰恰难以触及这一核心领域。 1. 理论根基:AI无法替代的“认知框架” 架构设计的本质是“在约束条件下寻找最优解”,这需要架构师具备扎实的计算机科学理论功底。从数据结构与算法、计算机网络、操作系统,到分布式系统原理、数据库设计范式,这些看似“枯燥”的知识,

By Ne0inhk