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 的网格组成的,网格中的元素或者为字符 @ 或者为空格.而倒过来的汉 ...
随机推荐
- json字段为null时输出空字符串
Map < String , Object > jsonMap = new HashMap< String , Object>(); jsonMap.put(); jsonMa ...
- python 爬虫 urllib模块介绍
一.urllib库 概念:urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urll ...
- springboot 部署jar项目与自启动
1.项目路径 jar包路径:/usr/local/src/apps/govdata.jar 2.启动项目 nohup java -jar govdata.jar & 3.查看项目启动日志 ta ...
- Random Pick with Weight
Given an array w of positive integers, where w[i] describes the weight of index i, write a function ...
- [转帖]Docker常用命令总结
Docker常用命令总结 http://www.ha97.com/5546.html 发表于: Linux, 互联网, 虚拟化与云计算 | 作者: 博客教主 标签: docker,常用命令,总结 PS ...
- 转-性能优化中CPU、内存、磁盘IO、网络性能的依赖
转自:https://www.cnblogs.com/Javame/p/3665565.html 系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估. ...
- PreparedStatement 以及事务的注意事项
a).PreparedStatement 可以进行批量操作,但是与Statement有一定的区别 1. Statement可以进行不同sql语句的批量操作 即可以同时进行 crud 操作. Strin ...
- Codeforces 1221B. Knights
传送门 看到棋盘上跳马,发现如果把棋盘黑白染色,那么每次移动都是从白点到黑点,从黑点到白点 所以直接根据黑白染色判断每个位置的马的颜色即可 #include<iostream> #incl ...
- Vue与Angular以及React的三者之间的区别
1.与AngularJS的区别 相同点:都支持指令:内置指令和自定义指令:都支持过滤器:内置过滤器和自定义过滤器:都支持双向数据绑定:都不支持低端浏览器. 不同点:AngularJS的学习成本高,比如 ...
- 第五篇 CSS入门 明白 三种嵌套形式,三种常用控制器
CSS入门 css是 层叠式样式表 css的作用是什么呢?举个抽象的例子啊,HTML是人,CSS则是衣服... css给html穿上衣服,有三种形式: 内嵌.内联.外联. 这三种形式,优先级为 ...