首页 > 其他分享 >动态规划基础之矩阵取数问题 51nod1083

动态规划基础之矩阵取数问题 51nod1083

时间:2023-06-02 18:38:12浏览次数:50  
标签:51nod1083 1083 示例 int 矩阵 550 取数 dp


题目地址:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1083

题目:


1083 矩阵取数问题



基准时间限制:1 秒 空间限制:131072 KB 分值: 5  难度:1级算法题






例如:3 * 3的方格。





1 3 3



2 1 3



2 2 1





能够获得的最大价值为:11。


Input



第1行:N,N为矩阵的大小。(2 <= N <= 500) 第2 - N + 1行:每行N个数,中间用空格隔开,对应格子中奖励的价值。(1 <= N[i] <= 10000)



Output



输出能够获得的最大价值。



Input示例



3 1 3 3 2 1 3 2 2 1



Output示例



11




思路:

动态规划。把大的状态用小的状态递推出来。比如3*3的矩阵,我们可以先算2*2的矩阵。


由(1,1)到(1,2)肯定就直接过去式最优解,(1,1)到(2,1)同理。


那么从(1,1)到(2,2)的最优解就可以从(1,2)和(2,1)中选一个大的了。


重复上面的操作,推广到n*n的矩阵,具体实现看代码把



代码:

#include<stdio.h>
int dp[550][550];
int n;
int max(int a,int b)
{
	return a>b?a:b;
 } 
int main()
{
	while(~scanf("%d",&n))
	{
		for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			scanf("%d",&dp[i][j]);
		for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			if(i==1&&j>1)//上边缘 
				dp[i][j]+=dp[i][j-1];
			if(j==1&&i>1)//左边缘 
				dp[i][j]+=dp[i-1][j];
			if(i>1&&j>1)//剩下的 
			{
				dp[i][j]+=max(dp[i][j-1],dp[i-1][j]);
			}
		}
		printf("%d\n",dp[n][n]);
	}
	return 0;
 }









标签:51nod1083,1083,示例,int,矩阵,550,取数,dp
From: https://blog.51cto.com/u_16125110/6404523

相关文章

  • ACM暑假训练 中石油oj 3737: 礼物(矩阵快速幂)
    3737:礼物时间限制:5Sec  内存限制:512MB提交:46  解决:12[提交][状态][讨论版]题目描述热情好客的小猴请森林中的朋友们吃饭,他的朋友被编号为1∼N,每个到来的朋友都会带给他一些礼物:香蕉。其中,第一个朋友会带给他1个香蕉,之后,每一个朋友到来以后,都会带给他之前所有......
  • 最大子矩阵和问题 动态规划 51nod1051
    1051 最大子矩阵和基准时间限制:2 秒空间限制:131072 KB分值: 40 难度:4级算法题例如:3*3的矩阵:-13-12-13-312和最大的子矩阵是:3-1-1312Input......
  • 一图归纳三大种类矩阵范数:诱导范数,元素范数,Schatten范数,涵盖谱范数,2范数
    转载自:https://blog.csdn.net/qq_27261889/article/details/87902480......
  • 一文读懂责任分配矩阵,解决你80%的项目难题
    成功的项目管理取决于整个团队对角色和职责的理解,使用责任分配矩阵分配和定义角色是使项目保持在正轨并为成功做好准备的好方法。如果设计得当,责任分配矩阵能够促进项目的成功交付。一、什么是责任分配矩阵责任分配(RACI)矩阵是项目管理工具,用于定义和跟踪团队成员在项目中的角色......
  • 矩阵快速幂加速递推
    矩阵优化递推的思想在于把递推的层数化为矩阵的幂数,也就是说设计一个矩阵\(A\),使得\(A^n\)中的某个元素就是递推的第\(n\)项,即\(f_n\)。这么做就可以将\(O(n)\)的递推优化为\(O(\log_2n)\)的矩阵快速幂(矩阵\(A\)的行列数为常数,因此快速幂中的矩阵乘法复杂度为常数),本质......
  • 2022-2023 春学期 矩阵与数值分析 C5 插值与逼近
    2022-2023春学期矩阵与数值分析C5插值与逼近C5插值与逼近原文5.1引言有n个插值节点,就有n插值条件,可以构造至多n-1次的插值函数需要考虑简单函数类的选取问题:如代数多项式,三角多项式,分段多项式,有理函数,样条函数等;存在唯一性问题;余项估计问题;收敛性问题等思......
  • sparkSQL原理和使用——一般在生产中,基本都是使用hive做数据仓库存储数据,然后用spark
    一、sparkSQL概述1.1什么是sparkSQLSparkSQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。类似于hive的作用。1.2sparkSQL的特点1、容易集成:安装Spark的时候,已经集成好了。不需要单独安装。2、统一的数据访问方......
  • tornado 分页读取数据库 实时下载csv
    class downloadHandler(RequestHandler):deffetdata(self,inde):    withMogoContext()asmongo:      res=list(mongo.db['datas'].find().limit(10).skip(inde*10))      fordinres:        yieldddefget(self):  ......
  • HDU4382(特殊的矩阵连乘)
    题目:HarryPotterandCyberSequenceGenerator题意,有两个容器C1,C2,初始的时候C1中有一个数的值为V,给你K个操作,每次都重复这K个操作N遍,最后问你C2中的数是   多少。N<=10^100。1:循环操作的次数巨大,敏感的想到这是矩阵连乘的题目。2:K个操作可以得出一个矩阵,N个K操作就是这个......
  • 系数矩阵为Hessian矩阵时的使用Pearlmutter trick的共轭梯度解法
    共轭梯度法已经在前文中给出介绍:python版本的“共轭梯度法”算法代码  =======================================  使用共轭梯度法时,如果系数矩阵为Hessian矩阵,那么我们可以使用Pearlmuttertrick技术来减少计算过程中的内存消耗,加速计算。 使用Pearlmuttertrick的......