NOJ——1568走走走走走啊走(超级入门DP)

  • [1568] 走走走走走啊走

  • 时间限制: 1000 ms 内存限制: 65535 K
  • 问题描述
  • 菜菜赚了钱回来,想起要买很多桶回来,不同地方的桶质量是不同的,他在(1,1)点出发因为飞机票有点贵所以他只能向我们的所在地(n,m)处移动,也就是只能向右和下移动,

    我们有的桶可能吃腻了所以(i,j)点的值可取可不取;但是菜菜自己也会饿所以在某些城市会吃掉一部分,甚至先透支一部分,所以a(i, j)可以为负,

    为了犒劳我们他尽可能会多带一点问他最多带多少质量回来

  • 输入
  • 输入n,m (n,m <= 1000)
    再输入n行m列值A(i,j) A(i,j)在 - 1000 ~ 1000 之间。而且A(i,j)可以取可以不取.只能往右或者往下走。
    问你,从左上角走到右下角,可以得到的最大值是多少。
  • 输出
  • 输出最大值
  • 样例输入
  • 3 3
    1 2 3
    4 5 6
    4 8 9
  • 样例输出
  • 27
  • 提示
  • 1 -> 4 -> 5 -> 8 -> 9

原理跟数塔比较像,四种状态:上面和左边走过来(2) * 取或不取(2)。

代码:

#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<sstream>
#include<cstring>
#include<cstdio>
#include<string>
#include<deque>
#include<stack>
#include<cmath>
#include<queue>
#include<set>
#include<map>
using namespace std;
typedef long long LL;
#define INF 0x3f3f3f3f
int pos[1010][1010];
int dp[1010][1010];
int main(void)
{
	int n,m,temp,i,j;
	while (~scanf("%d%d",&n,&m))
	{
		memset(pos,0,sizeof(pos));
		memset(dp,0,sizeof(dp));
		for (i=0; i<n; i++)
		{
			for (j=0; j<m; j++)
			{
				scanf("%d",&pos[i][j]);
			}
		}
		dp[0][0]=pos[0][0];//这里要用条件初始化
		for (i=0; i<n; i++)
		{
			for (j=0; j<m; j++)
			{
				dp[i][j]=max(dp[i-1][j],max(dp[i][j-1],max(pos[i][j]+dp[i-1][j],pos[i][j]+dp[i][j-1])));
			}
		}
		printf("%d\n",dp[n-1][m-1]);
	}
	return 0;
}

  

时间: 2024-12-16 04:14:48

NOJ——1568走走走走走啊走(超级入门DP)的相关文章

Knight&#39;s Trip---hdu3766(马走日求最小走的步数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3766 给你一个x ,y 求出从(0,0)位置到达需要的最小步数每次只能走日型: 下图为暴力bfs得到的答案:可以看一下: /** 首先,xy的大小排序和转化为都是正数步数不变应该懂吧. y=2*x这种情况直接就是(x+y)/3步. 如果y<2*x但是(x+y)%3==0的话,那么我们可以通过控制(1,2),(2,1) 两种跳法的次数达到...总数必然是(x+y)/3,然后xy的和对3取余是1的话,

关于PCB走线能不能走锐角的讨论

(此文参考吴川斌的博客) 很多PCB工程师都知道Layout走线时忌走直角,那么锐角能走吗? 回答当然是否定的!为什么呢? 这里先不说锐角对高速信号走线会不会造成负面影响,单从PCB DFM(可制造性设计)来看. PCB信号线形成锐角,会造成“酸角(acid traps)”的问题.在PCB线路刻蚀环节,在“酸角”处会出现线路刻蚀过度,从而使PCB出现线路虚断的问题.若PCB板厂工作人员检查到“酸角”问题,便会简单地贴一块铜到改间隙处.(这会不会对信号完整性造成影响不得而知,但锐角确实在工艺上出现

PCB走线之直角走线

PCB设计是一个复杂的过程,布线是极其重要的步骤,走线的好坏直接影响整块板子的性能,PCB走线的方式有很多种,下面就来说说其中的直角走线.直角走线是PCB走线方式中尽量要避免的,这也是衡量布线好坏的标准之一,直角走线会使传输线的线宽发生变化,造成阻抗不连续.其实不光是直角走线,顿角,锐角走线都可能会造成阻抗变化的情况. PCB直角走线的对信号的影响就是主要体现在三个方面:一.拐角可以等效为传输线上的容性负载,减缓上升时间:二.阻抗不连续会造成信号的反射:三.直角尖端产生的EMI.总的说来,PCB

openvpn实现分流,指定IP走VPN,其它走本地网络

最近研究了Openvpn好久.现在写一点心得出来. 客户需求:看香港某几个网站使用openvpn翻墙过去,其它所有访问不能用翻墙,要走本地. 系统环境: Centos x64位 6.8, 使用在线yum安装 一.服务器端配置 详细配置参考其它配置文档 [[email protected] openvpn]# rpm -qa | grep openvpn openvpn-2.3.11-1.el6.x86_64 生成ta.key文件,用于tls-auth认证. # openvpn --genkey

100个台阶,一次走一步,走两步,走三步,有多少种可能

分析 第一个台阶  1第二个台阶  11 2    //走两次1步或者走1次两步第三个台阶  111 12 21 3 第四个台阶  1111 112 121 211 22 13 31f(n)=f(n-1)+f(n-2)+f(n-3)  第n个台阶的可能 = n-1台阶的可能+n-2台阶的可能+n-3台阶的可能 我这里采用了递归算法 //param x 台阶数目 int goadd(int x) { if (x == 1){ return 1; } else if (x == 2){ return

大三上的总结(-----坚持走完了自己想走的路-----微笑---------)

(⊙v⊙)嗯,这天是第15周的周末的早晨八点. 为什么突然要写一篇这样柔软的文章来描述自己的大三生活呢? ->_->  因为又到期末啦! 该总结一下自己的脑瓜里学会啥了? 噗,先说点acmer的事吧! 西安赛区小小的回忆,来一首<回忆>---白智英,嗯,优美的调调,西安赛区一战,让我想了很多很多,从寒假集训,到暑假集训,为此放弃了自己休息的时间,而呆在实验室鏖战的ACMer,以及陈老师对我时不时送来的水果和时不时来看望我们,以及学校领导的重视. 深深的知道这一次现场赛来的有多么不容

n个台阶,每次都可以走一步,走两步,走三步,走到顶部一共有多少种可能

分析 第一个台阶  1第二个台阶  11 2    //走两次1步或者走1次两步第三个台阶  111 12 21 3 第四个台阶  1111 112 121 211 22 13 31 思想:4阶台阶,第一次可以迈1步(还剩3台阶也就是f(3)可能)或者2步(还剩2台阶也就是f(2)可能)或者3步(还剩1台阶也就是f(1)可能) f(n)=f(n-1)+f(n-2)+f(n-3)  第n个台阶的可能 = n-1台阶的可能+n-2台阶的可能+n-3台阶的可能 我这里采用了递归算法 //param x

PCB走线之差分走线

之前给大家介绍了PCB走线类型中的直角走线,今天就和大家说说PCB中的另一种走线--差分走线. 差分信号在高速电路设计中的应用越来越广泛,电路中最关键的信号往往都要采用差分结构设计,差分信号就是驱动端发送两个等值.反相的信号,接收端通过比较这两个电压的差值来判断逻辑状态"0"还是"1",而承载差分信号的那一对走线就称为差分走线.差分信号和普通的单端信号走线相比,最明显的优势体现在抗干扰能力强.能有效抑制EMI.时序定位精确上. 对于PCB工程师来说,最关注的还是如何

【NOIP模拟赛】超级树 DP

这个题我在考试的时候把所有的转移都想全了就是新加一个点时有I.不作为II.自己呆着III.连一个IV.连接两个子树中的两个V连接一个子树中的两个,然而V我并不会转移........ 这个题的正解体现了一种神奇的思想,对于好合并但是不好转移的dp我们可以先打散然后合并到最后,所以我们从一开始维护f[i][j]表示i阶超级树中有j个互不相交的路径的方案数. #include <cstdio> typedef long long LL; LL f[310][310],mod,temp; int n;