hiho #1469 : 福字(dp)
#1469 : 福字
描述
新年到了,你收到了一副画。你想找到里面最大的福字。
一副画是一个n × n的矩阵,其中每个位置都是一个非负整数。
一个福字被定义成是大小为 k 的正方形,满足其中的每个位置上的数都恰好比他的左边的那个和上边的那个大1(如果左边或上边的那个不存在的话就无此要求)。
比如
1 2 3
2 3 4
3 4 5
就是一个福字。(注意左上角可以是任何非负整数)。
你想找到这个矩阵中最大的福字的大小。
输入
第一行一个数 n,表示矩阵大小。(n ≤ 1000)
接下来 n 行,每行 n 个数,表示这个矩阵。矩阵中的数在0到108之间。
输出
一行一个数表示最大的福字的大小。
- 样例输入
-
4
1 2 3 0
2 3 4 0
3 4 5 0
0 0 0 0 - 样例输出
-
3
思路:
动态规划的题目,关键的部分是,福字为正方形,如果a[i][j]位置的数满足:
a[i][j]=a[i-1][j]+1=a[i][j-1]+1=a[i-1][j-1]+2
状态转移方程dp[i][j]=min(a[i-1][j],a[i][j-1],a[i-1][j-1])+1
else
dp[i][j]=1;
AC代码:
#include "iostream"
#include "algorithm"
using namespace std; int dp[][], a[][];
int ans; int main()
{
int n;
cin >> n;
for (int i = ; i <= n; i++)
{
for (int j = ; j <= n; j++)
{
cin >> a[i][j];
}
} for (int i = ; i <= n; i++)
{
for (int j = ; j <= n; j++)
{
if ((a[i][j] == a[i - ][j] + ) && (a[i][j] == a[i][j - ] + ) && (a[i][j] == a[i - ][j - ] + ))
dp[i][j] = min(min(dp[i - ][j], dp[i][j - ]), dp[i - ][j - ]) + ;
else
dp[i][j] = ; ans = max(ans, dp[i][j]);
}
} cout << ans;
}
hiho #1469 : 福字(dp)的更多相关文章
- 【HIHOCODER 1469 】福字(DP)
描述 新年到了,你收到了一副画.你想找到里面最大的福字. 一副画是一个n × n的矩阵,其中每个位置都是一个非负整数. 一个福字被定义成是大小为 k 的正方形,满足其中的每个位置上的数都恰好比他的左边 ...
- hihoCoder挑战赛27题目一 福字 (dp)
题目: 一个n × n的矩阵,其中每个位置都是一个非负整数. 一个福字被定义成是大小为 k 的正方形,满足其中的每个位置上的数都恰好比他的左边的那个和上边的那个大1(如果左边或上边的那个不存在的话就无 ...
- Word2010制作倒福字
原文: https://www.toutiao.com/i6489772955797553677/ 选择"插入"选项卡,"插图"功能组,"形状&quo ...
- hiho 有序01字符串 dp
题目1 : 有序01字符串 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 对于一个01字符串,你每次可以将一个0修改成1,或者将一个1修改成0.那么,你最少需要修改多少 ...
- hiho 1318 非法二进制数 dp
#1318 : 非法二进制数 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 如果一个二进制数包含连续的两个1,我们就称这个二进制数是非法的. 小Hi想知道在所有 n 位 ...
- hiho #1038 : 01背包 (dp)
#1038 : 01背包 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励 ...
- L1-054 福到了
“福”字倒着贴,寓意“福到”.不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出.这里要处理的每个汉字是由一个 N × N 的网格组成的,网格中的元素或者为字符 @ 或者为空格.而倒过来的汉 ...
- PAT天梯赛L1-054 福到了
题目链接:点击打开链接 "福"字倒着贴,寓意"福到".不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出.这里要处理的每个汉字是由一个 N x N 的 ...
- PAT基础级-钻石段位样卷2-7-5 福到了 (15 分)
“福”字倒着贴,寓意“福到”.不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出.这里要处理的每个汉字是由一个 N × N 的网格组成的,网格中的元素或者为字符 @ 或者为空格.而倒过来的汉 ...
随机推荐
- 编译安装MySQL数据库
1. 安cmake工具 # yum install -y cmake 2. 创建mysql用户 # useradd -M -s /sbin/nologin mysql 3. 创建数据目录 # mkdi ...
- pickle.dump()和pickle.load()
python的pickle模块实现了基本的数据序列和反序列化. 通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储: 通过pickle模块的反序列化操作,我们能够从 ...
- 【坑】不要使用各种框架提供的内部List
为了代码简洁有时我们会使用一些框架提供的工具类.如 import org.apache.commons.collections.ListUtils; package java.util.Collect ...
- Next Closest Time
Given a time represented in the format "HH:MM", form the next closest time by reusing the ...
- 前端开发工具包 WijmoJS 2019V1正式发布:全新的在线 Demo 系统,助您快速上手,开发无忧
前端开发工具包WijmoJS在2019年的第一个主要版本2019V1已经发布,本次发布包括了更加易用的在线Demo系统.各控件新增功能.NPM 包的改动,以及全新的浏览器API组件. WijmoJ ...
- C++多线程基础学习笔记(一)
下面分三个方面多线程技术的必须掌握一些基本知识. 1.进程 2.线程 3.并发 (1)进程 一个可执行程序运行起来了,即为创建了一个进程.如在电脑上打开了word,就创建了一个word进程,打开QQ, ...
- 5表联查yii框架权限控制
一:控制器部分 <?php namespace app\controllers; use yii\web\Controller; class PreController extends Cont ...
- SqlSugar
SqlSugar 官网 SqlSugar 源码 SqlSugar NuGet
- EJS学习(五)之EJS的CommonJs规范版本
EJS的CommonJs规范版本 ejs分为两个版本一个是CommonJs版本,另外一个是AMD规范的版本. 基础:html页面 安装:<script type="text/javas ...
- 微信开发新增拖动组件--movableview介绍
小程序的更新中,也新增了一个UI组件,它就是视图组件movable-view,它需要配合movable-area来一起使用.简单来说,它就是一个支持在指定区域内可以拖动内容的容器.我们来看一个简单的示 ...