0x12 内容简介与例题习题

0x54. 动态规划 - 树形DP(习题详解 × 12) 阅读详情

《算法竞赛进阶指南》读书笔记汇总
这里面是我在阅读《算法竞赛进阶指南》这本书时的一些思考,有兴趣可以瞧瞧!
如若发现什么问题,可以通过评论或者私信作者提出。希望各位大佬不吝赐教!

单调队列

单调队列与单调栈相似,都是利用问题的特性与队列特性相结合,是解决滑动窗口相关问题的有力工具。

【例题】最大子序和(AcWing135)

题目链接
思路: 由于维护的最大和是连续的,我们不难想到用前缀和来优化。预处理出前缀和数组 S S S之后,我们的问题转化为,找出两个数 x , y x,y x,y,使得 S [ y ] − S [ x ] S[y]-S[x] S[y]−S[x]最大并且满足 y − x ≤ m y - x \le m y−x≤m。那么我们可以枚举右端点 i i i,那么问题转化为在 [ i − m , i − 1 ] [i - m, i - 1] [i−m,i−1]中找到一个 j j j,并且 S [ j ] S[j] S[j]最小
我们考虑两个位置 j j j和 k k k,如果 k < j < i k < j < i k<j<i并且 S [ k ] > = S [ j ] S[k] >= S[j] S[k]>=S[j],那么对于所有大于等于 i i i的右端点而言, k k k永远不会成为最优选择,此时可以删除 k k k,不影响答案的更新。也就是说,我们可以维护一个单调递增的队列来解决这道题目。
为什么要维护成一个队列?因为我们发现,每个右端点 i i i所选择的区间只是在 [ i − m , i − 1 ] [i-m,i-1] [i−m,i−1],我们需要把超出区间范围的数删除掉,也就是从队头取出;使用当前数字与队列中的数比较时,由于要维护单调递增,所以原来的队列是从队头往队尾单调递增的,此时只需要与队尾进行比较即可。我们充分利用了队列这个数据结构的特性。

AC代码:

#include<bits/stdc++.h>
#define N 300005
#define INF 0x3f3f3f3f

using namespace std;

int n,m;
int a[N];
int hh,tt;
int q[N];

void solve(){
    cin >> n >> m;
    hh = tt = 1;
    q[1] = 0;
    int ans = -INF;
    for(int i = 1;i <= n;i ++){
        cin >> a[i];
        a[i] += a[i - 1];
        while(hh <= tt && i - q[hh] > m) hh ++;
        ans = max(ans,a[i] - a[q[hh]]);
        while(hh <= tt && a[q[tt]] > a[i]) tt --;
        q[++ tt] = i;
    }
    
    cout << ans << endl;
}

int main(){
    solve();
    return 0;
}

【习题】滑动窗口(AcWing154)

题目链接
思路:这一题也是一道单调队列模板题啦!直接上代码嘿嘿!
AC代码:

#include<bits/stdc++.h>

using namespace std;

const int N = 1000005;

int n,k;
int a[N];
int q[N];
int hh,tt;

void solve(){
    cin >> n >> k;
    for(int i = 1;i <= n;i ++) cin >> a[i];
    
    hh = 0,tt = -1;
    for(int i = 1;i <= n;i ++){
        while(hh <= tt && i - q[hh] + 1 > k) hh ++;
        while(hh <= tt && a[q[tt]] > a[i]) tt --;
        q[++ tt] = i;
        if(i >= k){
            cout << a[q[hh]] << " ";
        }
    }
    cout << endl;
    
    hh = 0,tt = -1;
    for(int i = 1;i <= n;i ++){
        while(hh <= tt && i - q[hh] + 1 > k) hh ++;
        while(hh <= tt && a[q[tt]] < a[i]) tt --;
        q[++ tt] = i;
        if(i >= k){
            cout << a[q[hh]] << " ";
        }
    }
    cout << endl;
}

int main(){
    solve();
    return 0;
}
【例题+习题】【数值计算方法复习】【湘潭大学】(二) 第一章:引言 目录第一章:引言写在前面的话知识点(重点)拉格朗日插值公式Neville 插值公式牛顿插值公式拉格朗日插值多项式和牛顿插值多项式Hermite 插值例题(重点)习题22.1 (重点)2.22.32.42.52.6(重点)2.72.82.92.102.11(重点)2.122.132.142.152.16(重点)2.172.182.192.202.212.222.232.242.252.26 写在前面的话 书籍:《数值计算方法》 作者:黄云清、舒适、陈艳萍、金继承、文立平、石钟慈 编 / 科学出版 阅读详情

相关推荐

UDS诊断中0x10服务的否定应答码(NRC)全解析:从0x12到0x22的避坑手册

本文深度解析UDS诊断协议中0x10服务的否定应答码(NRC),涵盖0x12到0x22等核心代码的触发机制与解决方案。通过真实案例和代码示例,详细讲解诊断会话控制服务在ISO14229标准下的实现要点,帮助工程师规避常见错误,提升诊断系统开发效率。

weixin_30485379的博客 613

习题3(进制转化)

现在小明把BCD的0x12看作是二进制的0001 0010,所以就换算成了十进制的2^4+2=18.现在想要输入十进制的18,得到十六进制的12。所以说可以直接把输入的数字化为16进制,得到正确数字。//输出一个十六进制数。法2:scanf("%d",&x);//读入一个十进制数。法1:(18/16)*10+(18%16)

m0_74985293的博客 797

UDS诊断0x10服务避坑指南:为什么你的会话切换总报NRC 0x12/0x13?

本文深入解析UDS诊断中的0x10服务,揭示会话切换报错NRC 0x12/0x13的根源。从协议规范到实战避坑,详细分析会话状态机、CDD配置验证、报文结构合规性等关键点,帮助工程师快速定位和解决诊断会话控制中的常见问题。

weixin_30723433的博客 298

BCD解密

BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了! 现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。 输入格式: 输入在一行中给出一个...

weixin_45768308的博客 1208

在Qt中使用EtherCAT-SOEM的初始化中,状态机卡在PreOp->Save-Op过程中,出现State=0x12, Error=0x001e错误的解决办法

1.在调试EtherCAT软件过程中,一直出现配置从站进不了Save_op状态,通过下函数检查从站状态: //使用的从站编号为1 只有1个从站 ec_slave[1].state = EC_STATE_SAFE_OP; ec_writestate(1); //设置到安全模式 ec_statecheck(1, EC_STATE_SAFE_OP, EC_TIMEOUTSTATE * 4); printf("Slave %d State=0x%2.2x StatusCode=0x%4

zeal_for_rov的博客 6828

R12.0.X APPS Clone 3% 和 R12.1.X 0% 过不去,等待很长时间然后报错:RC-50004

现象如下: Clone APPS tier时,执行了adcfgclone.pl后停在0%(12.0.X是停在3%)过不去,等待很长时间后(1小时左右),报错如下: / 0% completed RC-50004: Fatal: Error occurred in ApplyAppsTechStack: RC-50013: Fatal: Failed to instantiate drive

岁月有声。。。 4278

c语言中0x12是什么进制,C语言中进制知识汇总

1.什么是进制进制是一种计数的方式,常用的有二进制、八进制、十进制、十六进制。任何数据在计算机内存中都是以二进制的形式存放的。我对进制的个人理解,二进制数是以2为计算单元,满2进1位的数;八进制数是以8为计算单元,满8进1位的数。对于任何一个数字,我们都可以用不同的进制来表示,比如,十进制数12,用二进制表示为1100,用八进制表示为14,用十六进制表示为0xC。2.进制的转换规则遵循满进制值进1...

weixin_42509931的博客 7014

matlab内读取文件目录时斜杠和反斜杠的使用

@matlab内读取文件目录时斜杠和反斜杠的使用TOC matlab内读取文件目录时,斜杠和反斜杠的使用 最近被斜杠和反斜杠弄晕了,于是总结了一下,在此和大家分享一下。 代码 clear; clc; close all; I1= imread('..\zs1.jpg'); %和代码文件夹同目录的图片 (纯反斜杠) I2= imread('../zs2/zs2.j...

weixin_44456694的博客 6575

0x12 内存管理(一)

长篇预警 一、内存管理背景 内存是现代计算机运行的中心,它是由字或字节组成,每个字或字节都有自己的地址。 基本硬件 程序必须装入内存才能被执行; CPU可以直接访问的存储器只有主存高速缓存和寄存器; 寄存器通常可在1个(或少于1个)CPU时钟周期内完成访问,完成主存访问可能需要多个CPU时钟周期; CPU暂停(Stall):在读取内存数据时,CPU空闲; 在内存和CPU之间,增加高速内存,来协调速度差异,这种内存缓冲区称为高速缓存Cache; 内存保护需要保证正确的操作。 独立运行内存空间 确保进程可访.

ChanCherry的博客 1445

信息流广告ROI线性预测看板&投放分析监控看板展示&数据处理入库全流程

此看板数据量太大,在tableau public部署运行速度极慢,因此用图片作展示 数据清洗

Larry_Westside的博客 2317

Android蓝牙开发—经典蓝牙和BLE(低功耗)蓝牙的区别

      最近在做蓝牙开发,刚接触时傻傻的分不清经典蓝牙和低功耗蓝牙的区别,一直用开发低功耗蓝牙的方法去连接经典蓝牙设备,最后当然是一直连接不上了。在此记录下经典蓝牙和低功耗蓝牙的区别和联系。 Android中的蓝牙         说到Android中的蓝牙,大家听到的可能有蓝牙1.0、蓝牙2.0、蓝牙3.0、蓝牙4.0之类的以数字结尾的蓝牙版本号,而实际上,在最新的标准中,已经不再使用数...

zqf_888的博客 4万+

网络面试-0x12 UDP和TCP的区别以及应用场景

一、 UDP (user datagram protocol)用户数据报协议 ①: 一种简单的面向数据报的通讯协议,即:应用层传下来的报文,不合并,不拆分,只是在其上面加上首部后就交给了下面的网络层。无论应用层交给UDP多长的报文,它统统发送,一次发送一个报文。 ②: 接收方,接到后直接去除首部,交给上面的应用层就完成任务 ③:UDP报头包含4个字段,每个字段占用2个字节,标题段,开销小 特点: 1)UDP不提供复杂的控制机制,利用IP提供面向无连接的通讯服务 —— 连接 2)传输途中出现丢包,

bruscar的专栏 1980

AI虚拟人物 数字人直播,不用出镜,不用露脸的直播方式(附教程 软件)

我们先来看一组数据,这是我通过蝉妈妈查到的某位虚拟主播的一个带货数据,粉丝还不到 3000 人,每次直播 1 到 4 个小时,30天的总销量达到了1200单,15天,总销售额 2 万,可能相对来说客单价还是比较低,最关键的是才直播了 6 场,如果说他能够一个月直播 20 天,每天花 4个小时去直播,当个副业来做,就可以达到最起码月入 3 万的一个收入水平,我个人觉得是非常的不错的。大家把商品图片放在背景,只要场景设置的不错,场景和产品的关联度高,直播的时候挂上购买链接也会有一定的成交。

. 7万+

0x56 内容简介与例题习题

状态压缩dp状压dp基本介绍【例题】蒙德里安的梦想(AcWing291)【例题】炮兵阵地(AcWing292)习题【练习】岛和桥(AcWing1194) 状压dp基本介绍 对于某些问题,我们需要在动态规划的“状态”中记录一个集合,保存“轮廓”的详细信息,以便进行状态转移。 通常,若所记录集合中的元素都是小于KKK的自然数,且集合大小不超过NNN,那么我们可以将这个集合表示成一个NNN位KKK进制数,用一个[0,KN−1][0,K^{N-1}][0,KN−1]范围内的十进制整数,作为状态中的某一维。这种把

juruo_c的博客 848

Transformer模型在语义通信中的实战应用:从信源编码到端到端优化

本文深入探讨了Transformer模型在语义通信中的实战应用,从信源编码到端到端优化。文章分析了Transformer凭借其强大的全局依赖建模能力,如何成为实现高效语义提取与传输的理想架构,并提供了构建可端到端训练系统的具体实现思路与评估方法,旨在为下一代智能通信系统提供技术参考。

o9p0q1的博客 692

YOLOv13保姆级教程+AKConv模块:可变形卷积+自适应核优化,mAP提升3.23%,召回率&mAP50~95显著提升(论文涨点模块已验证)

本文介绍了一种改进的YOLOv13-AKConv模型,通过引入AKConv模块显著提升了目标检测性能。实验结果表明,优化后的模型(绿色曲线)相比原模型(蓝色曲线)在mAP指标上提升了3.23个点,同时召回率、mAP50-95等指标均有明显提升。作者详细阐述了模型移植过程,包括创建yolov13-AKConv.yaml配置文件,修改tasks.py和modules/init.py文件,以及实现AKConv模块的核心代码。该模块采用可变形卷积思想,通过动态生成采样点位置来增强特征提取能力,并集成了BN和SiLU

FJN110的博客 2611

0x57 内容简介与例题习题

倍增优化DP基本思想 基本思想 倍增优化dp主要包括这样两个步骤:预处理和二进制拼凑答案。

juruo_c的博客 591

汽车UDS诊断详解及Vector相关工具链使用说明——1.1 应用层协议整体介绍

本文我们先从整体的维度来介绍一下应用层协议,每个UDS服务都遵循本文中的协议。 一、SI(Service ID) SI是UDS指令的第一个字节,我们第一篇文章中提到的10等服务就是指这个服务的SI=0x10,它是服务的标识,每个服务的SI都是唯一的。 ...

weixin_42967006的博客 5475

0x02 内容总结与例题习题

递推与递归内容总结递推与递归的宏观描述简单应用【例题】费解的开关(AcWing95)【例题】奇怪的汉诺塔(AcWing96)分形【例题】分形之城(AcWing98)习题【练习】分形(AcWing118)【练习】袭击(AcWing119) 内容总结 递推与递归的宏观描述 对于一个待求解的问题,当它局限在某处边界、某个小范围或者某种特殊情形下时,其答案往往是已知的。如果能够将该解答的应用场景扩大到原问题的状态空间,并且扩展过程的每个步骤具有相似性,就可以考虑使用递推或者递归求解。 简单应用 话不多说,直接看

juruo_c的博客 537

2025机械考研复试面试问题汇总篇(含13门科目),考研机械复试专业面试常见重点问题总结!考研机械复试专业面试准备看这一篇就够了!

(完整版内容:)1.汇集了本科各科的重点知识及多个机械名校800多个常见问题,共8.7万字185页,涵盖机械所以专业课的重点知识和常见问答。 2.涉及机械大类重点科目,包括:材料力学、控制工程、数控技术、机械制造技术基础、理论力学、液压传动、机械设计、机械原理、工程材料、互换性与技术测量、测试技术、汽车理论、程序设计与C语言等13门必修课。

weixin_56510835的博客 1862

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

xss.haozi.me靶场“0x0B-0x12”通关教程

本篇xss.haozi.me靶场的“0x0B-0x12”通关教程,详细内容包含了一、0x0B 实体编码绕过 二、0x0C script绕过 三、0x0D 注释绕过 四、0X0E ſ符号绕过 五、0x0F 编码解码 六、0x10 直接执行 七、0x11 闭合绕过 八、0x12 闭合绕过等内容

钟言的博客 5534

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

“不行”也有层级:一篇文章彻底分清 UDS 的 0x7F、0x7E、0x12

这篇文章通过生动的比喻和实例,清晰区分了UDS诊断中三个容易混淆的否定响应码:0x7F(服务不支持)、0x7E(子功能不支持)和0x12(子功能不存在)。用修车厂和餐厅的比喻形象展示了它们在权限检查层级上的差异——0x7F是服务被整体禁用,0x7E是特定子功能在当前会话受限,0x12则是请求的子功能根本未定义。文章还提供了诊断请求的检查流程图、刷写实战案例和简单记忆口诀,帮助工程师快速识别和应对不同的拒绝场景。这些内容对汽车电子诊断开发人员具有实用价值。

qq_617498275的博客 569

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【C语言经典例题100解答】

收纳整理C语言各类经典例题100题,并给出实例代码和运行结果

依然的专栏 9043

【UDS诊断】——0x34、0x36、0x37服务

Client端使用Routine Control服务来执行定义的步骤序列并获取特定序列的相关结果。该服务有极大的灵活性。Service31的典型用途可以包括擦除内存、重置定义的数据、覆盖正常服务控制策略以及控制ECU值随时间变化的功能。通过Service31可以启动特定序列、停止运行该特定序列、请求运行结果。该服务以往常用于ECU在做Software Update时,应用于检查刷写条件是否满足、传输数据完整性以及独立性检测。

LOVE135149的博客 6100

CPU降压分享 14700KF降压 华硕吹雪Z790A主板 0x104微码 0x12F微码同样

CPU降压分享 华硕Z板13代14代带K CPU降压步骤

Frozensummer的博客 2万+

如何理解*(int *)0x12ff7c = 0x100;?

如何理解*(int *)0x12ff7c = 0x100;?

魏波 2458
上一篇: 0x11 内容简介与例题习题
下一篇: 0x14 内容简介与例题习题
juruo_c
博客等级 码龄6年 520粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值