线性DP4F

news/2025/3/20 8:24:40/文章来源:https://www.cnblogs.com/sdfzls/p/18782290

大小写转换

题目大意

直接写a,会花费x的时间,写shift+a,会花费y的时间,打开caplocks,会花费z的时间,请问打一串a和A的字符串,最少花费的时间;

算法分析

\(f[i][0/1]\)表示写到第i个字符的时候,caplocks是否是打开的状态,0表示没有打开,1表示打开

if(s[i]=='a'){f[i][0]=min(f[i-1][0]+x,f[i-1][1]+z+x);//不打开caplocksf[i][1]=min(f[i-1][0]+z+y,f[i-1][1]+y);//
}
if(s[i]=='A'){f[i][0]=min(f[i-1][0]+y,f[i-1][1]+z+y);f[i][1]=min(f[i-1][0]+z+x,f[i-1][1]+x);
}

初始状态是\(f[0][0]=0\),最终状态是\(min(f[n][1],f[n][0]);\)

数字反转

题目大意

改变i,会使得a[i],a[i+1]都乘以-1,问如何操作使得最后的a数组的和最大
3
-10 5 -4
第一次改变,10 -5 -4
第二次改变 10 5 4,所以最终答案是19

算法分析

我们观察性质发现,最终\(a[i]\)的值是被i和i-1是否改变影响的,所以我们可以设置\(f[i][0/1]\)表示前i位获得的最大值,且第i位是否改变的;

f[0][1] = INT_MIN;for (int i = 1; i <= n - 1; i++) {f[i][0] = max(f[i - 1][1] - a[i], f[i - 1][0] + a[i]);f[i][1] = max(f[i - 1][1] + a[i], f[i - 1][0] - a[i]);}f[n - 1][0] += a[n];//必须把最后的a[n]加入到答案中f[n - 1][1] -= a[n];cout << max(f[n - 1][0], f[n - 1][1]);

核电站

题目大意

有n个坑,连续放m个就会爆炸,问最后的方案数
想答案最终合法的状态是第i个坑前面连续放了\(0,1,2,3,……m-1\)个,所以\(f[i][j]\)表示前\(i\)个坑里,连续放了\(j\)个核炸弹的方案数

f[0][0] = 1;for (int i = 1; i <= n; i++) {for (int j = 0; j <= min(m - 1, i); j++) {f[i][0] += f[i - 1][j];  //如果第i个位置不放f[i][j] %= mod;if (j >= 1) {f[i][j] += f[i - 1][j - 1];f[i][j] %= mod;}}}for (int i = 0; i <= min(n, m - 1); i++) {ans += f[n][i];ans %= mod;}

糖果

题目大意

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

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

相关文章

修改windows用户名

1、首先重命名系统盘的用户文档:【如何更改Windows电脑的本地账户用户名?】 https://www.bilibili.com/video/BV1b2421L7cR/?share_source=copy_web&vd_source=8c2fd9ec8bef74a8517070eaa3b47916 (注意:• 如果出现“XXXXXX桌面不可用。如果该位置位于这台电脑上,…

解析Collections工具类主要功能

Collections 是 JDK 提供的一个工具类,位于 java.util 包下,提供了一系列的静态方法,方便我们对集合进行各种操作,算是集合框架的一个大管家。 大致看一下方法名和参数就能知道这个方法是干嘛的:排序操作reverse(List list):反转顺序 shuffle(List list):洗牌,将顺序打乱…

微服务配置相关

​ 微服务某商城模块,进行购物车结算时提示订单生成失败,后台无错误,打开f12检查,有数据进入,但报错503,猜测是服务器方面的问题,排查后发现是配置Nacos时,明明不规范无法识别 修改前: ​​​​ 修改后:修改完成后不再出现问题,问题解决 ​

Escalate

Escalate 信息收集 扫描 目标主机ip ┌──(root㉿kali)-[~] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:84:b2:cc, IPv4: 192.168.158.143 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.158.1 00:50:56:…

简单实现 sln 和 slnx 两个解决方案文件格式互转

本文将告诉大家如何通过 Microsoft.VisualStudio.SolutionPersistence 实现 sln 和 slnx 格式文件的相互转换按照 dotnet 的惯例,使用 NuGet 安装 Microsoft.VisualStudio.SolutionPersistence 库,安装之后的 csproj 项目文件内容大概如下 <Project Sdk="Microsoft.N…

加速 PyTorch 模型介绍

加速 PyTorch 模型介绍 PyTorch 2.0 引入了一个名为*torch.compile()*的工具,可以极大地加速 PyTorch 代码和模型。通过将 PyTorch 代码转换为高度优化的内核,torch.compile 在现有代码库上进行最小化修改即可提供显著的性能提升。此功能允许精确优化单个函数、整个模块以及复…

推荐几本专著1《AI芯片开发核心技术详解》、2《智能汽车传感器:原理设计应用》、3《TVM编译器原理与实践》、4《LLVM编译器原理与实践》

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

《自然语言处理实战 : 从入门到项目实践》 | PDF免费下载

《自然语言处理实战:从入门到项目实践》系统讲解 NLP 基础知识与核心技术,涵盖文本分类、情感分析、机器翻译等内容,并通过实际项目演示如何应用深度学习模型解决 NLP 问题。适合 AI 初学者、开发者及数据科学家,助力高效掌握 NLP 技能。《自然语言处理实战 : 从入门到项目…

数组与指针的区别

一、理解数组类型 指针存储的是内存的地址,而内存的地址实际上是一个64位无符号的整数。我们可以发现指针实际上是内存上的一处空间的值保存着另一处空间的地址。1、算数方法获取相邻内存的值 首先定义 x 和 y 两个变量,然后分别输出他们的地址。 int x = 1; int y = 123; co…

《自然语言处理实战 : 预训练模型应用及其产品化》 | PDF免费下载

《自然语言处理实战:预训练模型应用及其产品化》系统讲解了 NLP 领域的最新技术,涵盖 BERT、GPT 等预训练模型的应用,并结合实际案例展示如何将 NLP 技术产品化。适合开发者、数据科学家及 AI 从业者,助力高效落地 NLP 解决方案。点击下载 书籍信息 作者: Ankur A. Patel /…

[以太网/汽车网络] 车载服务通信(SOME/IP)设计实践 [转]

序 1 引入在SOA架构中,服务是构成系统的基本单元,它代表了系统中的某个功能或操作。服务通过明确的接口与外界进行交互,实现了功能的封装和重用。 SOA架构的核心就是服务: 它通过将应用程序划分为一系列的服务来降低系统的复杂度,提高系统的灵活性和可维护性。 在SOA中,服…

小白尖叫!DeepSeek安装竟偷占C盘?这样做路径配置 直接根治存储焦虑!

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注前言 之前给大家讲解了关于Ollama+DeepSeek的使用和本地部署, 有些朋友表示遇到一些问题,无法解决! …