首页 > 编程语言 >C++U4新-第06课-二分答案

C++U4新-第06课-二分答案

时间:2024-04-10 10:44:48浏览次数:29  
标签:二分 06 int U4 tree mid C++ height 答案

二分答案学习目标

 先学习单调性,二分查找的单调性意思

二分答案单调性

 二分答案的思路

 

 

[【二分答案】-砍树]

 

#include <iostream>
using namespace std;
int main(){
    int n, m;
    int tree[1000005];
    cin >> n >> m;
    for(int i = 1;i <= n; i++){
        //输入每棵树的高度
        cin >> tree[i];
    }
    int height = 0;
    for(int i = 1;i <= n; i++){
        if(tree[i] > height){
            height = tree[i];
        }
    }
    int left = 0, right = height, mid, ans;
    while(left <= right) {//二分框架
        mid = (left + right) / 2;
        //计算高度mid时能锯的木材
        long long sum = 0;
        for(int j = 1;j <= n; j++){
            if(tree[j] > mid) {
                sum += tree[j] - mid;
            }
        }
        //判断是否达到要求的木材m
        if(sum >= m){
            ans = mid;
            left = mid + 1; 
        } else right = mid - 1; 
    }
    cout << ans;
    return 0;
}
View Code

 

标签:二分,06,int,U4,tree,mid,C++,height,答案
From: https://www.cnblogs.com/jayxuan/p/18125530

相关文章

  • C++ - VS2019配置Qt开发环境
    下面正式介绍VS2019+Qt5.14.2开发环境的配置,其它版本类似,安装步骤如下:注意:首先自行安装好vs2019和qt5.14.2再执行以下步骤1、VisualStudio2019配置Qt环境(1)插件下载安装点击VS上方的菜单栏,选择“拓展—>管理拓展”进入管理拓展对话框,在右上方搜索qt,出现搜索结果后,选择......
  • 百度驾驶证C++离线SDK V1.1 C#接入
    百度驾驶证C++离线SDKV1.1C#接入目录说明 效果 项目代码下载 说明 自己根据SDK封装了动态库,然后C#调用。SDK包结构效果 项目代码usingNewtonsoft.Json;usingOpenCvSharp;usingSystem;usingSystem.Collections.Generic;usingSystem.Diagnosti......
  • 【leetcode面试经典150题】26.判断子序列(C++)
    【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C++语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致)【题目描述】给定字符串 s 和 t ......
  • [ARC061F] Card Game for Three
    题意有\(3\)个人。每个人分别有\(n1,n2,n3\)张牌。每张牌上有一个名字,分别表示三个人。对于每个回合,进行如下操作:若当前回合的玩家手上没有牌了,则该玩家获胜。否则从手牌中取出一张牌,丢弃她,并进入该牌上的名字的玩家的回合。求第一名玩家获胜的牌的分配方案数。Sol......
  • 第十一届蓝桥杯C/C++组C组决赛之思维风暴 快速解题
    十五届蓝桥杯即将开赛,十一届的蓝桥杯国赛的一些巧妙解法。美丽的2 题目描述本题为填空题,只需要算出结果后,在代码中使用输出语包将所填结果输出即可。小蓝特别喜欢2,今年是公元2020年,他特别高兴。他很好奇,在公元1年到公元2020年(包含)中,有多少个年份的数位中包含数字2?......
  • c++中的缺省参数
    c++相对于C语言的一个新的语法叫做缺省参数。什么叫做缺省参数呢???我们先来看我们已知的Add函数缺省参数就是给x和y赋一个默认的值  我们可以根据自己的需要将x或者y给上缺省值看下面一个例子: 如果我们将函数中所有的参数都给上了缺省值,我们也叫这些参数为全缺省参数......
  • C++11:超进化--lambda表达式
    目录一、lambda表达式的引入二、lambda表达式的语法2.1lambda表达式各部分说明2.2lambda函数的初步使用2.3详谈捕捉列表2.3.1[var][&var] 2.3.2[=]传值捕捉当前域所有对象 2.3.3[&]传引用捕捉所有对象2.3.4[&,val]混合捕捉​编辑 三、lambda底层、lambda与函数对......
  • 问题解决 usr/include/c++/11/bits/list.tcc:344:24: error: no match for ‘operator
    1.问题解决usr/include/c++/11/bits/list.tcc:344:24:error:nomatchfor‘operator==’错误解释:这个编译错误表明编译器在尝试使用==操作符比较两个对象时找不到匹配的操作符函数。在C++中,如果你尝试比较两个自定义类型的对象,且没有为这些对象定义==操作符,编译器将无法进......
  • C++ 标准模板库 STL(1)set 与 multiset
    一、简介    set与multiset容器能够快速查找键,键是存储在一维容器中的值,二者的区别在于前者不能够存储重复的键值,后者能够存储重复键值。    set与multiset内部结构类似于二叉树,并且被插入到set与multiset容器中的元素会默认进行排序,从而提高查找速度。这意......
  • 突破编程_C++_网络编程(Windows 套接字(setsockopt 选项设置))
    1setsockopt函数介绍Windows套接字(Winsock)的setsockopt函数是用于设置套接字选项的重要工具。通过这个函数,开发者可以调整套接字的行为,以满足特定的网络应用需求。(1)函数原型intsetsockopt(SOCKETs,intlevel,intoptname,constchar*optval,intop......