信息学奥赛一本通 2007:【20CSPJ普及组】方格取数 | 洛谷 P7074
【题目链接】
ybt 2007:【20CSPJ普及组】方格取数
洛谷 P7074 [CSP-J2020] 方格取数
【题目考点】
1. 坐标型动规
【解题思路】
- 确定状态:a[i][j]为从起点走到i,j位置时整数和的最大值
- 确定状态转移方程:
- 熊从左上角出发,在第一列范围内只能向下走,可以求出第一列的状态。
- 从第一列某位置向右走到了第二列,不考虑走到第三列,在这一列中只能一直向上或下一个方向运动,因为不能重复经过已经走过的方格。
设一维数组u,d,
u[i]表示到第j列后只向上走,得到的i,j位置的状态a[i][j],
d[i]表示到第j列后只向下走,得到的i,j位置的状态a[i][j]。- 如果只考虑向上走,那么一个位置可能是从左侧或下侧走来的,取其中值更大的状态,u[i] = max(u[i+1], a[i][j-1])
- 如果只考虑向下走,那么一个位置可能是从左侧或上侧走来的,取其中值更大的状态,d[i] = max(d[i-1], a[i][j-1])
- 而后比较u[i]与d[i],取其中较大的值,作为a[i][j]。
【注意数据范围】:最大方格数有103⋅103=10610^3\cdot10^3 = 10^6103⋅103=106个,每个格子最大值为10410^4104,求出总和可能达到101010^{10}1010,超出了int型表示的范围,因而要用long long类型。
【题解代码】
解法1:
#include<bits/stdc++.h>
using namespace std;
#define N 1005
long long mp[N][N], a[N][N], u[N], d[N];
int main()
{int n, m;cin>>n>>m;for(int i = 1; i <= n; ++i)for(int j = 1; j <= m; ++j)cin>>mp[i][j];a[1][1] = mp[1][1];for(int i = 2; i <= n; ++i)//求第一列的状态a[i][1] = a[i-1][1] + mp[i][1];for(int j = 2; j <= m; ++j)//遍历剩下各列{u[n] = a[n][j-1] + mp[n][j];生成u数组,从下向上走,如果是最下面一行,只能从左走来。for(int i = n - 1; i >= 1; --i)u[i] = max(u[i+1], a[i][j-1]) + mp[i][j];//不是最下面一行,可能从左或下方来。d[1] = a[1][j-1] + mp[1][j];//生成d数组,从上向下走,如果是最上面一行,只能从左走来for(int i = 2; i <= n; ++i)d[i] = max(d[i-1], a[i][j-1]) + mp[i][j];//不是最上面一行,可能从左或上方来。for(int i = 1; i <= n; ++i)//生成a[i][j]a[i][j] = max(u[i], d[i]);}cout<<a[n][m];return 0;
}
信息学奥赛一本通 2007:【20CSPJ普及组】方格取数 | 洛谷 P7074相关推荐
- 信息学奥赛一本通 2005:【20CSPJ普及组】直播获奖 | 洛谷 P7072 [CSP-J2020] 直播获奖
[题目链接] ybt 2005:[20CSPJ普及组]直播获奖 洛谷 P7072 [CSP-J2020] 直播获奖 [题目考点] 计数排序(桶排序) 其核心为:设计数数组c,c[i]表示数字i出现的个 ...
- 信息学奥赛一本通 1919:【02NOIP普及组】选数 | 洛谷 P1036 [NOIP2002 普及组] 选数
[题目链接] ybt 1919:[02NOIP普及组]选数 洛谷 P1036 [NOIP2002 普及组] 选数 [题目考点] 1.排列组合 2.深搜(子集树) 3.质数 [解题思路] 深搜(子集树) ...
- 信息学奥赛一本通 1314:【例3.6】过河卒(Noip2002) | 1921:【02NOIP普及组】过河卒 | 洛谷 P1002 [NOIP2002 普及组] 过河卒
[题目链接] ybt 1314:[例3.6]过河卒(Noip2002) ybt 1921:[02NOIP普及组]过河卒 洛谷 P1002 [NOIP2002 普及组] 过河卒 [题目考点] 1. 坐标 ...
- 信息学奥赛一本通 1967:【14NOIP普及组】螺旋矩阵 | 洛谷 P2239 [NOIP2014 普及组] 螺旋矩阵
[题目链接] ybt 1967:[14NOIP普及组]螺旋矩阵 洛谷 P2239 [NOIP2014 普及组] 螺旋矩阵 类似考题: 洛谷 P1014 [NOIP1999 普及组] Cantor 表 ...
- 信息学奥赛一本通 1985:【19CSPJ普及组】加工零件 | 洛谷 P5663 [CSP-J2019] 加工零件
[题目链接] ybt 1985:[19CSPJ普及组]加工零件 洛谷 P5663 [CSP-J2019] 加工零件 [题目考点] 图论 SPFA算法 [解题思路] 1. 问题分析 每个工人是一个顶点, ...
- 信息学奥赛一本通 1981:【18NOIP普及组】对称二叉树 | 洛谷 P5018【NOIP2018 普及组】 对称二叉树
[题目链接] ybt 1981:[18NOIP普及组]对称二叉树 洛谷 P5018[NOIP2018 普及组] 对称二叉树 [题目考点] 二叉树 [解题思路] 先求出二叉树中各子树的结点数 遍历二叉树 ...
- 信息学奥赛一本通 1978:【18NOIP普及组】标题统计 | 洛谷 P5015 [NOIP2018 普及组] 标题统计
[题目链接] ybt 1978:[18NOIP普及组]标题统计 洛谷 P5015 [NOIP2018 普及组] 标题统计 [题目考点] 1. 字符串 读入带空格的字符串 将带空格的字符串读入字符数组 ...
- 信息学奥赛一本通 1365:FBI树(fbi) | 1928:【04NOIP普及组】FBI树 | 洛谷 P1087 [NOIP2004 普及组] FBI 树
[题目链接] ybt 1365:FBI树(fbi) ybt 1928:[04NOIP普及组]FBI树 洛谷 P1087 [NOIP2004 普及组] FBI 树 [题目考点] 1. 二叉树 [解题思路 ...
- 信息学奥赛一本通 1415:【17NOIP普及组】图书管理员 | 洛谷 P3955 [NOIP2017 普及组] 图书管理员
[题目链接] ybt 1415:[17NOIP普及组]图书管理员 洛谷 P3955 [NOIP2017 普及组] 图书管理员 [题目考点] 1. 枚举 2. 二分 [解题思路] 解法1:枚举 对于每个 ...
最新文章
- usaco Snail Trails
- 基于逆向最大化词表中文分词法zz
- hdu6380(2018 “百度之星”程序设计大赛 - 初赛(B))
- swagger配置分组
- Winddows 10 安装 COCO API(pycocotools)
- python输入数据爬取_python根据用户需求输入想爬取的内容及页数爬取图片方法详解...
- 数学建模学习笔记(一)——层次分析模型
- 【数据结构与算法】顺序表V3.0的Java实现
- ASP.NET 数据访问类
- Attempt to do update or delete on table educator.t_item_info that does not use an AcidOutputFormat o
- python 释放内存_python深入之python内存管理机制(重点)
- 基于stm32和富斯遥控器的SBUS波形分析和通讯实现
- 小米手机连接MAC电脑
- 15款超好用的短链接在线生成器(新浪t.cn、腾讯url.cn)
- 单片机c语言延迟子程序,单片机通用延时子程序
- Mac设置Office的语言问题
- JS-写一个函数,返回参数的平方和
- html定义var,html的var标签是什么?关于var标签的定义和用法详解
- 2022.10.21 单词背诵
- vue调用lodop打印
热门文章
- VHDL基础 学习笔记
- 是时候好好去学门脚本语言了
- C# 4.0 的 Visual Studio 2010 官方示例
- 面试了8家公司,他们问了我这些机器学习题目……
- 低欲望社会有多可怕?仅94万!日本去年新生人口数创历史新低,空房子如瘟疫般蔓延...
- 两个运放制作加法器_同相加法器电路图_反相加法器电路图_运放加法器电路图解析...
- python 登录接口_使用python编写一个登录接口
- 看完这篇Redis缓存三大问题,够你和面试官battle几回合了
- 手把手教你逼走员工的23种套路,大写的服!
- /bin/bash: jar: command not found(