动态规划之方格取数

方格取数

动态规划,数字三角形模型

题目链接

https://www.luogu.com.cn/problem/P1004

题目描述

在这里插入图片描述
在这里插入图片描述

解法一 O ( n 4 ) O(n^4) O(n4)

#include<bits/stdc++.h>
using namespace std;
int n, i, j, l, k, x, y, s;
int d[55][55], f[55][55][55][55];
int main() 
{cin>>n;while(cin>>x>>y>>s && x)d[x][y] = s;for(i = 1; i <= n; i++)for(j = 1; j <= n; j++)for(l = 1; l <= n; l++)for(k = 1; k <= n; k++) {//四种走法,右 和 下 的四种组合f[i][j][l][k] = max(max(f[i - 1][j][l - 1][k], f[i][j - 1][l][k-1]), max(f[i - 1][j][l][k - 1], f[i][j - 1][l - 1][k])) + d[i][j];//若是两个走到同一个位置,因为走过的会变0,故只需+一次,不同的话则两个值都得加if(i != 1 && j != k) f[i][j][l][k] += d[l][k];}printf("%d", f[n][n][n][n]);return 0;

解法二 O ( n 3 ) O(n^3) O(n3)

//走两次
//f[i1, j1, i2, j2]表示所有从(1,1),(1,1)分别走到(i1, j1), (i2,j2)
//这里因为我们最后需要走到同一个格子,故可以优化为三维(k, i1, i1),k = i1 + j1 = i2 + j2 
//注意i1和i2可能相同,则根据情况不同所加权值也不同
//最终要求的答案为f[n + n][n][n] 
#include <iostream>
#include <algorithm> 
using namespace std;
const int N = 15;
int n;
int w[N][N], f[N * 2][N][N];	//k,i1,i2int main() {cin >> n;int a, b, c;while(cin >> a >> b >> c, a || b || c)	w[a][b] = c;for(int k = 2; k <= n + n; k ++) {for(int i1 = 1; i1 <= n; i1 ++) {for(int i2 = 1; i2 <= n; i2 ++) {int j1 = k - i1, j2 = k - i2;if(j1 < 1 || j1 >n || j2 < 1 || j2 > n)	continue;int value = w[i1][j1];if(i1 != i2)	value += w[i2][j2];int y1 = f[k - 1][i1 - 1][i2 - 1] + value;//右右 int y2 = f[k - 1][i1][i2 - 1] + value;//下右 int y3 = f[k - 1][i1 - 1][i2] + value;//右下 int y4 = f[k - 1][i1][i2] + value;//下下 f[k][i1][i2] = max({y1, y2, y3, y4});}}}	cout << f[n + n][n][n] << endl;return 0;
}

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

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

相关文章

nginx界面管理工具之nginxWebUI 搭建与使用

nginx界面管理工具之nginxWebUI 搭建与使用 一、nginxWebUI 1.nginx网页配置工具 官网地址: http://www.nginxwebui.cn 源码地址&#xff1a;https://git.chihiro.org.cn/chihiro/nginxWebUI 2.功能说明 本项目可以使用WebUI配置nginx的各项功能, 包括http协议转发, tcp协议…

CQ 社区版2.10.0 | 新增 SQL 审核、全新英文版上线…

三月中旬&#xff0c;我们预告了 CloudQuery 社区版即将上线的「SQL 审核」功能。现在&#xff0c;它来了&#xff01; 本次社区版 v2.10.0&#xff0c;除了 SQL 审核功能&#xff0c;我们还在手动授权、连接分组等模块做了新功能和优化。 新增功能 新增 SQL 审核功能 支持…

Linux编译器-gcc/g++/gdb使用

Linux编译器-gcc/g/gdb使用 一、背景知识二、 gcc如何完成2.1 预处理(进行宏替换)2.2 编译&#xff08;生成汇编&#xff09;2.3 汇编&#xff08;生成机器可识别代码&#xff09;2.4 连接&#xff08;生成可执行文件或库文件&#xff09; 三、函数库四、gcc选项五、gdb5.1 背景…

产品之美10| 小小提示词(hint),便于用户交互

最近AIGC功能火热&#xff0c;有文生图和图生图两种。当用户初次接触到文生图的时候&#xff0c;会有一刻停顿&#xff1a;我该怎用输入呢&#xff1f;这时候的hint就可以发挥作用了&#xff1a; 编辑框&#xff08;EditView)里面有可爱的小女孩&#xff0c;加风格卡通。用户看…

基于单片机的二维码LCD显示控制设计

**单片机设计介绍&#xff0c;基于单片机的二维码LCD显示控制设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的二维码LCD显示控制设计是一个集硬件、软件与通信于一体的综合性项目。此设计的主要目标是实现单片机…

【动手学深度学习-pytorch】 9.4 双向循环神经网络

在序列学习中&#xff0c;我们以往假设的目标是&#xff1a; 在给定观测的情况下 &#xff08;例如&#xff0c;在时间序列的上下文中或在语言模型的上下文中&#xff09;&#xff0c; 对下一个输出进行建模。 虽然这是一个典型情景&#xff0c;但不是唯一的。 还可能发生什么其…

【详细讲解yarn的安装和使用】

&#x1f308;个人主页:程序员不想敲代码啊&#x1f308; &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家&#x1f3c6; &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提…

Java复习第十二天学习笔记(JDBC),附有道云笔记链接

【有道云笔记】十二 3.28 JDBC https://note.youdao.com/s/HsgmqRMw 一、JDBC简介 面向接口编程 在JDBC里面Java这个公司只是提供了一套接口Connection、Statement、ResultSet&#xff0c;每个数据库厂商实现了这套接口&#xff0c;例如MySql公司实现了&#xff1a;MySql驱动…

C语言: 指针讲解

为什么需要指针? &#xff08;1&#xff09;指针的使用使得不同区域的代码可以轻易的共享内存数据。当然你也可以通过数据的复制达到相同的效果&#xff0c;但是这样往往效率不太好&#xff0c;因为诸如结构体等大型数据&#xff0c;占用的字节数多&#xff0c;复制很消耗性能…

论文笔记:TALK LIKE A GRAPH: ENCODING GRAPHS FORLARGE LANGUAGE MODELS

ICLR 2024&#xff0c;reviewer评分 6666 1 intro 1.1 背景 当下LLM的限制 限制1&#xff1a;对非结构化文本的依赖 ——>模型有时会错过明显的逻辑推理或产生错误的结论限制2&#xff1a;LLMs本质上受到它们训练时间的限制&#xff0c;将“最新”信息纳入到不断变化的世…

Android熄屏/亮屏,旋转屏幕/横竖屏切换生命周期变化与activity销毁重建

Android熄屏/亮屏&#xff0c;旋转屏幕/横竖屏切换生命周期变化与activity销毁重建 1、熄屏/亮屏 熄屏后&#xff0c;Android生命周期走&#xff1a; onPause onStop 接着点亮Android手机屏幕&#xff0c;生命周期走&#xff1a; onRestart onStart onResume 2、旋转屏幕&…

云架构(二) 大使模式

Ambassador pattern &#xff08;https://learn.microsoft.com/en-us/azure/architecture/patterns/ambassador&#xff09; 简单描述 创建一个助手服务&#xff0c;这个服务代表消费服务或者应用程序发送网络请求。大使服务可以看做是与客户机同一个位置的进程外代理。 这种…

Linux——逻辑卷(LVM)管理

目录 LVM简介 LVM机制的基本概念 PV&#xff08;Physical Volume&#xff0c;物理卷&#xff09; VG&#xff08;Volume Group&#xff0c;卷组&#xff09; LV&#xff08;Logical Volume&#xff0c;逻辑卷&#xff09; PE&#xff08;Physical Extent&#xff0…

手写SpringBoot(三)之自动配置

系列文章目录 手写SpringBoot&#xff08;一&#xff09;之简易版SpringBoot 手写SpringBoot&#xff08;二&#xff09;之动态切换Servlet容器 手写SpringBoot&#xff08;三&#xff09;之自动配置 手写SpringBoot&#xff08;四&#xff09;之bean动态加载 手写SpringBoot…

GPU-CPU-ARM-X86-RISC-CUDA

CPU更适合处理复杂逻辑运算和单线程任务&#xff0c;而GPU则更适合处理大规模并行计算任务。 CPU&#xff08;中央处理器&#xff09;通常具有较少的核心数量&#xff08;一般在2到16个之间&#xff09;&#xff0c;但每个核心的性能较强&#xff0c;擅长执行复杂的运算和逻辑…

【C++】const限定符|const引用

const的引用 说const引用之前需要说明&#xff0c;这是建立在引用的前提下&#xff0c;如果是普通的拷贝赋值就基本不需要使用到const(有关权限)。 1 权限不能放大&#xff08;可平移、缩小&#xff09; 如何解释权限不能放大&#xff1f; 阅读下面的代码 可以看到&#xff1a…

sadtalker学习用于风格化音频驱动单图像说话人脸动画的真实 3D 运动系数的应用

论文出处 https://arxiv.org/abs/2211.12194 使用方法 1. 打开项目的colab链接 https://colab.research.google.com/github/Winfredy/SadTalker/blob/main/quick_demo.ipynb#scrollTofAjwGmKKYl_I 在examples/source_image文件夹中添加希望动起来说话的图片&#xff0c;这…

基于GA遗传优化的离散交通网络双层规划模型设计matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于GA遗传优化的离散交通网络双层规划模型设计.优化输出路段1和路段2的收费情况收敛过程。 2.测试软件版本以及运行结果展示 MATLAB2022a版本运行 3.核心程序…

组蛋白脱乙酰酶介导的胃癌肿瘤微环境特征及协同免疫治疗(多组学文献学习)

目录 ①HDAC转录组多数据NMF一次聚类 ②ACRG队列中HDAC单独NMF聚类 ③HDS评分在胃癌中的临床特征和基因组特征 ④高 HDS 可能提示胃癌的“热”肿瘤状态 ⑤HDS是胃癌免疫治疗效果的有力预测指标 ⑥单细胞转录组测序揭示了高HDS和低HDS患者的TME ⑦内皮细胞和成纤维细胞可…