首页 > 其他分享 >2023.11.22学习笔记(2)

2023.11.22学习笔记(2)

时间:2023-11-22 17:22:58浏览次数:27  
标签:二分 22 int 2023.11 mid 笔记 pos 最小值 ans

跳石头

P2678 [NOIP2015 提高组] 跳石头 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)


佬啊佬啊,我的思路:用数组b去储存它的差分,每一次找到它的最小值,将最小值和它旁边的较小的那个值合并,边界的话就直接合并,总计进行m次合并操作,这个时候再找到它的最小值,就是答案但是如果是枚举找最小值的话会爆掉,所以要考虑二分,甚至更优的解法,下面贴佬的思路和代码:

#include<cstdio>
int L,n,m,i,w,l,r,mid,pos,ans,a[55555];
bool ok(int x){
    for(pos=w=0,i=1;i<=n;i++)if(a[i]-pos<x)w++;else pos=a[i];
    return w<=m;
}
int main(){
    for(scanf("%d%d%d",&L,&n,&m),i=1;i<=n;i++)scanf("%d",&a[i]);a[++n]=L;
    for(l=1,r=L;l<=r;)if(ok(mid=l+r>>1))ans=mid,l=mid+1;else r=mid-1;
    printf("%d",ans);
}

但是我们需要意识到一个问题,我是一只小蒟蒻,所以看不太懂二分也没有关系对吧qwq;所以意识到了,需要找个时间好好学习一下二分了。。。。

 

标签:二分,22,int,2023.11,mid,笔记,pos,最小值,ans
From: https://www.cnblogs.com/bosssz/p/17849860.html

相关文章

  • 11.22
    今天画了四个图,收入管理, 支出管理, 库存管理, 生产管理 ......
  • 代码整洁之道笔记3
    四.注释1.若编程语言足够有表达力,就不需要注释2.注释的恰当用法是弥补我们在用代码表达意图时遭遇的失败。注释总是一种失败3.程序员应当负责将注释保持在可维护、有关联、精确的高度,更应该把力气用在写清楚代码上,直接保证无须编写注释4.不准确的注释要比没注释坏得多注释不能......
  • 算法学习笔记(40): 具体数学
    具体数学本文是阅读《具体数学》产生的理解性文本,并且涵盖了部分其他相关的内容。不怎么重要或者太难的东西因为时间问题,我略过了。本文来之不易,请勿机械搬运:原文地址-https://www.cnblogs.com/jeefy/p/17848037.html目录具体数学第二章-和式和式的处理有限微积分分部求和......
  • 代码整洁之道笔记4
    七.错误信息错误处理很重要,但如果它搞乱了代码逻辑,就是错误的做法使用异常而非返回码1.遇到错误时,最好抛出一个异常。调用代码很整洁,其逻辑不会被错误处理搞乱先写Try-Catch-Finally语句1.异常的妙处之一是,它们在程序中定义了一个范围。执行try-catch-finally语句中try部分的......
  • P8907 [USACO22DEC] Making Friends P 题解
    明明看着不难的题目,却意外的卡人。思路考虑两头奶牛可以成为朋友条件是什么。存在一条路径连接这两头奶牛。且除去端点外的路径上的所有点的编号小于两端点的较小值。充分必要性都比较显然。如何维护。我们可以从小到大加入点,维护这些路径。对于每个点维护一个\(\text{se......
  • sharding分表应用笔记(四)——踩坑记录
    sharding分表应用笔记(四)——踩坑记录(更新中)目录sharding分表应用笔记(四)——踩坑记录(更新中)1sql语句使用时不带分表关键字段2在事务中触发数据源路由1sql语句使用时不带分表关键字段如果不带分表关键字段,会默认进行全节点域遍历。如果没有预先创建所有的表节点,会报错提示找不......
  • 11.22总结
    packagetest;publicabstractclassAbstractCommand{publicabstractintexecute(intvalue);publicabstractintundo();}packagetest;publicclassAdder{privateintnum=0;publicintadd(intvalue){num+=value;returnnum;}}packagetest;publi......
  • VS2022下nuget包同步失败,提示: PackageSourceMapping 已启用,未考虑以下源: **
    随着Net8的发布,顺带VS2022升级到17.8后,发现nuget还原恢复多了一些配置: 有问题的时候,会提示未找到映射源,此时编译会报错,如下示例: 严重性代码说明项目文件行禁止显示状态错误NU1100无法解析net7.0-android33.0的“HarfBuzzSharp.NativeAssets.Linux(>=2.8.2.3)”......
  • GPG 相关简单笔记
    工作中接触到GPG相关,特此记录下一些简单的用法和需求。使用加密加密是采用公钥进行加密,通常情况下,加密需要指定USER,或者USER-ID指令通常是:gpg-uuser-oencrypted.txt-eorigin.txt签名签名只是让接受者判断,这个文件是不是让你接受的,实际上即使不是以你的用户签名的......
  • 学习笔记11
    关于知识点知识点归纳第十三章TCP/IP和网络编程13.1网络编程简介网络编程是指编写应用程序以实现计算机网络之间的通信和数据交换。网络编程涉及到一系列的技术和协议,包括套接字编程、网络协议(如TCP/IP、HTTP等)、分布式计算技术等。在网络编程中,开发者需要了解网络分层模......