动态规划,二维DP

文章目录

  • 1、摆花
  • 2、异或选数
  • 3、数字三角形

1、摆花

在这里插入图片描述
分析:
输入2 4 3 2 的情况下,只有 (2,2) , (3,1) 这两种方案。
所以,设置状态 dp[i][j] 表示到第 i 种花(共 n 种花)、第 j 个位置(共 m 个位置)的情况下的总方案数。
在这里插入图片描述
k 表示 第 i 种花使用的数量,a[i] 表示第 i 种花本来的数量。

示例代码:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll p = 1e6+7 , N = 1e3+5;
ll a[N],dp[N][N]; 
int n,m; 
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cin>>n>>m;for(int i=1;i<=n;i++)cin>>a[i];dp[0][0]=1;for(int i=1;i<=n;i++){for(int j=0;j<=m;j++){for(int k=0;k<=a[i]&&k<=j;k++)// k<=j 避免花数过多,超过了j(余下的位置)dp[i][j]=(dp[i][j]+dp[i-1][j-k])%p;}}cout<<dp[n][m];return 0;
}

2、异或选数

在这里插入图片描述
分析:
有多少个子序列进行异或可以得到x。
设状态 dp[i][j] 表示到第 i 个数字(共n个)、异或和为 j 的子序列的个数。
对于每次的状态有选择这个数 和 不选择 这两种情况。
dp[i][j] = dp[i-1][j] + dp[i-1][j^a[i]]

代码示例:

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+5,p = 998244353;
int a[N],dp[N][70],n,x; 
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cin>>n>>x;for(int i=1;i<=n;i++)cin>>a[i];dp[0][0]=1;for(int i=1;i<=n;i++){for(int j=0;j<64;j++){//a[i]<=63,所以异或结果肯定不会大于64dp[i][j]=(dp[i-1][j]+dp[i-1][j^a[i]])%p;}}cout<<dp[n][x];return 0;
}

3、数字三角形

在这里插入图片描述
分析:

设置 dp[i][j][k] 表示从(i,j)出发一共进行了 k 次右移,n-i-k次左移。
dp[i][j][k] = a[i][j] + max(dp[i+1][j][k],dp[i+1][j+1][k-1])

代码示例:

#include<bits/stdc++.h>
using namespace std;
const int N = 1e2+5;
int a[N][N],dp[N][N][N];
int n;
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=i;j++)cin>>a[i][j];for(int i=n;i>=1;i--){for(int j=1;j<=i;j++){for(int k=0;k<=n-i;k++){if(k>=1)dp[i][j][k]=a[i][j]+max(dp[i+1][j][k],dp[i+1][j+1][k-1]);else dp[i][j][k]=a[i][j]+dp[i+1][j][k];}}}if(n&1)cout<<dp[1][1][(n-1)/2];else cout<<max(dp[1][1][(n-1)/2],dp[1][1][n-1-(n-1)/2]);	return 0;
}

DFS暴力解决,只能过50%,oi赛制的蓝桥杯还是能骗分的,如果用dp的话,可能根本就想不到

#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+5;
int a[N][N],note[N];
int n;
int maxsum;
void dfs(int x,int left,int right){if(x==n){if(abs(left-right)>1)return;note[x]=a[x][1+right];// 第 x 个 int sum=0;for(int i=1;i<=n;i++)sum+=note[i]; if(sum>maxsum)maxsum=sum;return;}note[x]=a[x][right+1];// 第x行,第right+1个 dfs(x+1,left+1,right);// 向下移动 left+1 dfs(x+1,left,right+1);// 向左移动 right+1 
}
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=i;j++)cin>>a[i][j];dfs(1,0,0);cout<<maxsum;		return 0;
}

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

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

相关文章

Leetcode算法题笔记(2)

目录 图论51. 岛屿数量解法一 52. 腐烂的橘子解法一 53. 课程表解法一 54. 实现 Trie (前缀树)解法一 回溯55. 全排列解法一 56. 子集解法一解法二 57. 电话号码的字母组合解法一 58. 组合总和解法一解法二 59. 括号生成解法一解法二 60. 单词搜索解法一 61. 分割回文串解法一 …

[Netty实践] 请求响应同步实现

目录 一、介绍 二、依赖引入 三、公共部分实现 四、server端实现 五、client端实现 六、测试 一、介绍 本片文章将实现请求响应同步&#xff0c;什么是请求响应同步呢&#xff1f;就是当我们发起一个请求时&#xff0c;希望能够在一定时间内同步&#xff08;线程阻塞&am…

FPGA高端项目:解码索尼IMX327 MIPI相机转HDMI输出,提供FPGA开发板+2套工程源码+技术支持

目录 1、前言2、相关方案推荐本博主所有FPGA工程项目-->汇总目录我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、个人 FPGA高端图像处理开发板简介5、详细设计方案设计原理框图IMX327 及其配置MIPI CSI RX图像 ISP 处理图像缓存HDMI输出工程源码架构 6、工程源码…

Java中SPI机制简单演示

Java中SPI机制简单演示 写一个SpiService接口 public interface SpiService {void run();}写两个实现类&#xff0c;注意&#xff1a;实现类可以跨包 Slf4j public class SpiServiceImpl1 implements SpiService {Overridepublic void run() {log.warn("SpiServiceImpl…

简单破除github的2FA验证

简单破除github的2FA验证 文章目录 简单破除github的2FA验证&#x1f468;‍&#x1f3eb;Authenticator工具 &#x1f468;‍&#x1f3eb;Authenticator工具 最近使用github的时候发现要搞一个2FA的验证才可以 验证的途径有两种&#xff1a;一种是用手机电话验证&#xff0c;…

使用easyYapi生成文档

easyYapi生成文档 背景1.安装配置1.1 介绍1.2 安装1.3 配置1.3.1 Export Postman1.3.2 Export Yapi1.3.3 Export Markdown1.3.4 Export Api1.3.6 常见问题补充 2. java注释规范2.1 接口注释规范2.2 出入参注释规范 3. 特定化支持3.1 必填校验3.2 忽略导出3.3 返回不一致3.4 设置…

第二证券|高速连接概念再度活跃,沃尔核材5日涨近60%,胜蓝股份等走高

高速连接概念26日盘中再度走强&#xff0c;到发稿&#xff0c;胜蓝股份涨超13%&#xff0c;沃尔核材涨停&#xff0c;华丰科技、奥飞数据涨超5%。 值得注意的是&#xff0c;沃尔核材近5个交易日已收成4个涨停板&#xff0c;累计大涨近60%。公司近来在投资者互动平台表示&#…

宽光谱SOA光芯片设计(一)

-本文翻译自由Geoff H. Darling于2003年撰写的文章。尽管文章较早&#xff0c;但可以了解一些SOA底层原理&#xff0c;并可看到早期SOA研究的思路和过程&#xff0c;于今仍有很高借鉴价值。 摘要 本文介绍一种新型宽光谱半导体光放大器&#xff08;SOA&#xff09;技术&#x…

【数据分享】中国土壤有机质数据集(免费获取)

中国土壤有机质数据集对于农业、生态环境保护等领域具有重要意义。通过对土壤有机质等多项指标的统计和分析&#xff0c;可以更好地了解土壤的特性&#xff0c;指导合理的土壤管理和保护措施的制定&#xff0c;从而促进农业生产的可持续发展&#xff0c;并为生态环境保护提供科…

数据结构与算法之美学习笔记:《数据结构与算法之美》学习指导手册

目录 前言 前言 本节课程思维导图&#xff1a; 在设计专栏内容的时候&#xff0c;为了兼顾不同基础的同学&#xff0c;我在内容上做到了难易结合&#xff0c;既有简单的数组、链表、栈、队列这些基础内容&#xff0c;也有红黑树、BM、KMP 这些难度较大的算法。但是&#xff0c;…

利用云手机高效运营多个海外社媒账户

随着全球化进程的不断推进&#xff0c;中国出海企业和B2B外贸企业日益重视海外社媒营销&#xff0c;将其视为抢占市场份额的关键策略。在海外社媒营销中&#xff0c;企业通常会在多个平台上批量开通账户&#xff0c;搭建自己的社媒内容矩阵。本文将会介绍如何用云手机高效运营多…

格雷希尔G25F系列快速接头,在新能源电池包气密性测试时的各种电气接插件的应用

一些大的新能源电池制造商如&#xff1a;比亚迪、宁德时代、国轩高科、亿纬锂能、东方时代等&#xff0c;在全球的新能源电池市场上占据着重要的地位。新能源PACK电池包在生产时&#xff0c;需要经过一些严苛的测试&#xff0c;用以检测产品的品质是否达到合格标准&#xff0c;…

基于React的低代码平台开发实践

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;在线地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

skimage求凸包、包络

给一幅分割 label&#xff0c;求某个物体的凸包&#xff08;convex hull&#xff09;[1]和包络&#xff08;polygon&#xff09;[2]&#xff0c;所得是一幅 0/1 的 mask。凸包、包络都是包含物体的&#xff0c;分别在于包络不要求凸&#xff0c;可以更细致地勾勒物体形状。例&a…

中国500米逐年植被净初级生产力(NPP)数据集(2000-2022)

净初级生产力(NPP)是指植物在单位时间单位面积上由光合作用产生的有机物质总量中扣除自养呼吸后的剩余部分&#xff0c;是生产者能用于生长、发育和繁殖的能量值&#xff0c;反映了植物固定和转化光合产物的效率&#xff0c;也是生态系统中其他生物成员生存和繁衍的物质基础。其…

电脑控制面板在哪?5招教你快速打开!

“我在执行一个任务时要进入电脑的控制面板中查看&#xff0c;但是我不知道电脑的控制面板在哪&#xff0c;谁能帮帮我呀&#xff1f;” 电脑控制面板是一个系统文件夹&#xff0c;它提供了各种对计算机系统进行设置和管理的工具。控制面板允许用户查看并操作基本的系统设置&am…

Leetcode 76 最小覆盖子串 java版

官网链接&#xff1a; . - 力扣&#xff08;LeetCode&#xff09; 1. 问题&#xff1a; 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串&#xff0c;则返回空字符串 "" 。 注意&#xff1a; 对于 …

VsCode安装,配置,快捷键及常用开发插件的安装与介绍

文章目录 一.安装包下载方式一.官网下载方式二.网盘下载 二.安装三.VSCode插件安装1.中文语言包2.拼写检察器3.HTML自动补全4.JavaScript-ES6语法提示5.补全前端代码6.路径提示7.Vue3/Vue2开发必用8.自动闭合HTML/XML标签9.标签同步修改10.格式化html,css,js11.区分括号12.快速…

Vue3更新Package.json版本号

由于我之前已经更新过了&#xff0c;下面的方法提示我已经是最新的了&#xff0c;记录一下&#xff0c;过段时间在测试一下 npm install -g vue/clivue upgrade

DHCP中继配置示例

DHCP&#xff0c;属于应用层的协议&#xff08;使用UDP协议封装&#xff0c;客户端端口&#xff1a;68&#xff0c;服务器端端口&#xff1a;67&#xff0c;中继端的端口&#xff1a;67&#xff09; 两种配置方式&#xff1a;1、接口配置&#xff1b;2、全局配置。 ipconfig …