7.6 做题笔记

news/2024/10/6 4:17:28/文章来源:https://www.cnblogs.com/holmes-wang/p/18287054

7.6 做题笔记

笔记、梳理、题解合三为一的产物。

P2569 [SCOI2010] 股票交易

考虑 DP,数据允许开到平方级别。

\(f_{i,j}\) 表示第 \(i\) 天持有 \(j\) 张股票的最大钱。

四种转移:

  1. 凭空买入,即本次买入与前面无关。\(f_{i,j}=-ap_i\cdot j\)

  2. 不买不卖,直接从前些天转移。$f_{i,j}=\max{f_{i,j},f_{i-1,j}} $。

  3. 在前面交易(买或卖)基础上买入,需要满足“两次交易间隔 \(w\) 天”的条件。

    虽然不一定上一次交易就是第 \(i-w-1\) 天,但是由转移 2 得,\(f_{i-w-1,k}\) 已经是前面这些天的最优答案,所以可以从这天转移到今天。

    注意买入的数量不要超过 \(as_i\)。方程为:\(f_{i,j}=\max\{f_{i,j},f_{i-w-1,k}-(j-k)\cdot ap_i\}\; (j-as_i\leq k<j)\)

  4. 与转移 3 类似,在前基础上卖出。方程为:\(f_{i,j}=\max\{f_{i,j},f_{i-w-1,k}+(k-j)\cdot bp_i\}\; (j<k\leq j+bs_i)\)

发现转移 3,4 均为立方级别时间复杂度。\(\max\) 转移可以考虑单调队列优化。

根据乘法分配律,转移 3 方程实际为:\(f_{i,j}=\max\{f_{i,j},f_{i-w-1,k}+k\cdot ap_i\}-j\cdot ap_i\)。转移 4 类似,就不写了。区间取最大值的操作,单调队列可完成。

转移时注意顺序与逆序,不要把已更新过的拿来更新其他状态。

「一本通 5.5 例 2」最大连续和

时间只允许线性级别。设 \(f_i\) 为以 \(i\) 结尾的长度不超过 \(m\) 的子串的最大和。

朴素转移:\(f_i=\max_j\{\sum\limits_{k=j}^i a_k\}\;(j>i-m)\)

预处理前缀和,则 \(f_i=\max_j\{sum_i-sum_{j-1}\}\;(j>i-m)\)

\(sum_i\) 提出来,再把 \(-sum_{j-1}\) 去负号,\(\max\) 也就变成了 \(\min\)\(f_i=sum_i-\min_j\{sum_{j-1}\}\)

可以用单调队列解决这个 \(\min\)

P3089 [USACO13NOV] Pogo-Cow

时间允许平方级别。设 \(f_{i,j}\) 表示当前在 \(i\) 点,从 \(j\) 点跳来的最大得分。首先按坐标顺序排序。

立方转移:\(f_{i,j}=\max\{f_{j,k}\}+p_i\;(x_j-x_k\leq x_i-x_j)\)

这里有一个建立 DP 方程式的 trick:尝试一下把 \(f_{i-1,j}\) 带入 \(f_{i,j}\)\(f_{i,j}=f_{i-1,j}-p_{i-1}+p_i\)

注意这里 \(f_{i-1,j}\) 的范围是 \(x_{j}-x_k\leq x_{i-1}-x_j\),但是由于 \(x_i>x_{i-1}\),所以满足 \(f_{i,j}\) 范围的 \(k\) 会比满足 \(f_{i-1,j}\) 范围的 \(k\) 要多。这里简单用 while 拓展一下就好了。

题意是可以一直向左或一直向右,正反做两次 DP 即可。

P2627 [USACO11OPEN] Mowing the Lawn G

只允许线性复杂度。设 \(f_{i,0/1}\) 表示前 \(i\) 头奶牛中 不选/选 这头奶牛。\(f_{i,0}=\max\{f_{i-1,0},f_{i-1,1}\}\)\(f_{i,1}=\max_j\{f_{j,0}+\sum\limits_{k=j+1}^iE_k\}\;(i-K\leq j< i)\)

预处理前缀和,\(f_{i,1}=\max\{f_{j,0}+sum_i-sum_{j}\}=\max\{f_{j,0}-sum_j\}+sum_i\)。单调队列维护 \(\max\)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年6月后2周重要的大语言模型论文总结:LLM进展、微调、推理和对齐

本文总结了2024年6月后两周发表的一些最重要的大语言模型论文。这些论文涵盖了塑造下一代语言模型的各种主题,从模型优化和缩放到推理、基准测试和增强性能。 LLM进展与基准 1、 BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Complex Instruc…

龙城新闻

2024-07-02 5月30日龙岗重点新闻2024-07-02 51月30日龙岗重点新闻打开app立即下载10月1日龙城重点新闻龙城街道宣传部 2024-10-1 龙城街道宣传部 2024年10月1日 全区要闻 ●“高质量发展龙岗行”系列报道 | 近日,龙岗区举办高层建筑无人机消防应用示范项目签约仪式,率先…

基于CFX的小型风电机组流场计算流程

一、WOrkbench界面框架二、Geometry模块操作 1.打开Geometry模块,导入txt格式模型File >> Import External Geometry File2.绘制圆柱体作为风轮旋转域3.绘制长方体作为流场计算域4.根据模型与计算条件,做了旋转,根据实际情况选择和操作5.布尔运算第1步:计算域 — (旋…

基于CFX的小型风电机组流程计算流程

一、WOrkbench界面框架二、Geometry模块操作 1.打开Geometry模块,导入txt格式模型File >> Import External Geometry File2.绘制圆柱体作为风轮旋转域3.绘制长方体作为流场计算域4.根据模型与计算条件,做了旋转,根据实际情况选择和操作5.布尔运算第1步:计算域 — (旋…

初始C++

1.visual studio2022 创建项目以及创建C++文件完成上述步骤之后我们就可以敲代码了!!2.关于编译和链接 1.ctrl+F7 对当前C++文件进行编译 并会在编译成功后生成.obj文件。 2.F5 运行整个项目 就会将一个项目下的所有 C++文件进行编译 再将编译后生成的.obj文件链接起来生成 一…

Mysql 8.4 安装(Centos7.9)

前置准备root 环境下执行# 关闭selinux vi /etc/selinux/config # SELINUX=enforcing =>SELINUX=disabled # 开通防火墙3306/tcp firewall-cmd --permanent --add-port=3306/tcp下载链接获取https://dev.mysql.com/downloads/file/?id=529414下载&安装 下载 mkdir -p …

工具|--LINQPad|--使用DnSpy调试LINQPad

前言LINQPad本身就有调试功能, 使用dnSpy调试LINQPad的代码, 岂不是多此一举 ? 其实主要是为了使用dnSpy调试LINQPad中使用到依赖dll的的底层代码, 比如, 在LINQPad中使用到了WPF的dll, 使用dnSpy就可以调试到WPF的一些底层代码.并且, 我尝试过, 直接使用dnSpy加载LINQPad生成…

字符串函数库的经典使用学习

<?php// 1.单引号定义字符串// 2.双引号定义字符串// 3.定界符定义字符串// 1.单引号定义字符串// echo this is my mother;echo this is \my\ mother <br>;// 单引号不能解析转义符\n 换行 \t 缩进echo this \n is a simple \t string<br>;$username = admin;…

解密Prompt系列33. LLM之图表理解任务-多模态篇

这一章我们聚焦多模态图表数据。先讨论下单纯使用prompt的情况下,图片和文字模态哪种表格模型理解的效果更好更好,再说下和表格相关的图表理解任务的微调方案上一章我们介绍了纯文本模态的表格理解任务,这一章我们聚焦多模态图表数据。先讨论下单纯使用prompt的情况下,图片…

用StabilityMatrix一键安装Stable Diffusion

Stable Diffusion是2022年发布的深度学习文字到图像生成模型,它既能免费使用,又能部署在本地端,又有非常多的模型可以直接套用,在使用体验上比Midjourney和DALL-E更加强大。Stable Diffusion使用的模型有下列几大类,对照模型网站 https://civitai.com 以形成更直观的认识:…

「代码随想录算法训练营」第四天 | 链表 part2

24.两两交换链表中的节点题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/ 题目难度:中等 文章讲解:https://programmercarl.com/0024.两两交换链表中的节点.html#算法公开课 视频讲解: https://www.bilibili.com/video/BV1YT411g7br 题目状态:有思路,但细节…

【0基础学爬虫】爬虫框架之 feapder 的使用

前言 大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬虫】专栏,帮助小白快速入门爬虫。 学习爬虫的过程中,一…