SDNU 1038.收集宝藏(dp)

Description

有一个n*n的矩阵,矩阵每个格子中都有一些宝藏,从左上角(1, 1)出发,每次只能向下或者向右移动一格,已知每个格子中宝藏的价值,求走到右下角(n, n)时能收集到的宝藏的总最大价值。

Input

第一行为一个整数n(1 <= n <= 1000),表示矩阵的行、列数。

接下来n行,每行n个整数,每个整数表示当前格子的宝藏价值(不超过10000)。

Output

一个整数,表示能收集到的宝藏的最大总价值。

Sample Input

4
1 2 3 10
3 4 1 1
5 2 1 1
1 3 1 1

Sample Output

19思路:这道题就是简单的dp,我个傻吊打了一百多行的bfs,结果还不对,真是像极了cxk。然后大佬告诉我这就是个超级无敌简单的dp,用简单的dp就过了。嘤嘤嘤...
#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <vector>
#include <map>
using namespace std;

int n, fig[1000+8][1000+8], v, dp[1000+8][1000+8];

int main()
{
    memset(dp, 0, sizeof(dp));
    scanf("%d", &n);
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= n; j++)
            scanf("%d", &fig[i][j]);
    for(int i = 1; i<=n; i++)
        for(int j = 1; j<=n; j++)
            dp[i][j] = max(dp[i-1][j], dp[i][j-1])+fig[i][j];
    printf("%d\n", dp[n][n]);
    return 0;
}

原文地址:https://www.cnblogs.com/RootVount/p/10883819.html

时间: 2024-10-10 00:42:33

SDNU 1038.收集宝藏(dp)的相关文章

西电oj 1038 状压dp

西电oj 1038  状压dp 1038: 裁玻璃 时间限制: 1 Sec  内存限制: 128 MB提交: 33  解决: 4[提交][状态][讨论版] 题目描述 张老板的玻璃店开张了,生意火爆.今天,隔壁玻璃店的刘老板拿来一块玻璃,意在刁难张老板.刘老板说:“我这块玻璃是由N(行)*M(列)小正方形玻璃拼成的,但是其中有一些玻璃坏了,我希望你现在把它裁成尽量多的2*2的小玻璃,而且这些小玻璃都不能有坏的地方.如果你裁出来的块数不是最多的,我就把你赶出建材市场.”现在,张老板来拜托你帮他解决这

POJ 1038 状压DP

一个公司生产一种2*3规模的芯片,但是原材料上面有一些地方是不能用来当作芯片材料的,给出原料大小,及上面不能做原料的点,问你怎么分解,可以使生成芯片最大化. 对M进行三进制状压 last数组存储第i-1行和i-2行状态,cur数组存储i行和i-1行状态 cur[k]=2; // 本行k位置和上行k位置都不可用 cur[k]=1; // 本行k位置可用,上行k位置不可用 cur[k]=0; // 本行和上行位置k均可用 必须用滚动数组,否则爆内存 #include "stdio.h" #

河南省第六届省赛 探寻宝藏 dp

1484: 探 寻 宝 藏 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 59  Solved: 26 SubmitStatusWeb Board Description 传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物.某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处处有宝物,最珍贵的宝物就藏在右下角,迷宫的进出口在左上角.当然,迷宫中的通路不是平坦的,到处都是陷阱.Dr.Kong决定让他的机器人卡多去探险. 但机器人卡多从左上角走到右

{dp入门}

之前一直比较恐惧dp的题,暑假之前好好从头补一下. 题目链接:HihoCoder - 1037 数字三角形 dp[i][j]表示到第i层第j个房间时累计收集到的最大值,从上到下记忆化搜索即可 状态转移:dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+m[i][j]; 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 using namespace std; 5 i

Hdu 4336 Card Collector (状态概率DP|容斥原理)

详细的题目大意与解析大家参考一下kuangbin的文章. kuangbin链接 这边说一下自己对于kuangbin代码以及容斥原理位元素枚举的理解与解释,希望对大家有所帮助. 状态DP AC代码:状态压缩的思想我就不赘述了,我也只是略懂,这边仅仅分析一下状态方程 由于量比较多,我这边有的便用文字代替,有利于描述. dp[i]表示i状态达到满状态(即收集满n个物品,以下称满状态)所需要的期望. 那么i状态当中收集了x的物品,剩余n-x个物品没有收集 那么dp[i]=p*dp[i]+p2*dp[i2

POJ题目推荐(转载)

POJ推荐50题1.标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉.2.标记为A and B的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目.3.列表中大约有70个题目.大家选做其中的50道,且每类题目有最低数量限制.4.这里不少题目在BUPT ACM FTP上面都有代码,请大家合理利用资源.5.50个题目要求每个题目都要写总结,养成良好的习惯.6.这个列表的目的在于让大家对各个方面的算法有个了解,也许要求有些苛刻,教条,请大家谅

xdoj

1000.a+b. #include<bits/stdc++.h> using namespace std; int a,b; int main() { ios::sync_with_stdio(false); while(cin >> a >> b) cout << a+b << endl; return 0; } 1001.直接开数组回爆内存,于是自己开个一维数组存放元素,大小需要自己斟酌.(或者动态数组) 直接处理对应位置,根据最后对应的位

50题(ACM学习推荐题)

POJ推荐50题 1. 标记"难"和"稍难"的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉. 2. 标记为 A and B 的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目. 3. 列表中大约有70个题目.大家选做其中的50道,且每类题目有最低数量限制. 4. 这里不少题目在 BUPT ACM FTP 上面都有代码,请大家合理利用资源. 5. 50个题目要求每个题目都要写总结,养成良好的习惯. 9. 这个列表的目的在于让

ZOJ3626---Treasure Hunt I

Treasure Hunt I Time Limit: 2 Seconds      Memory Limit: 65536 KB Akiba is a dangerous country since a bloodsucker living there. Sometimes the bloodsucker will appear and kill everyone who isn't at his hometown. One day, a brave person named CC finds