博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu5024(dp)
阅读量:6802 次
发布时间:2019-06-26

本文共 1720 字,大约阅读时间需要 5 分钟。

意甲冠军:

薛期呵和王熙凤不想很接近生活(因为假定他们一起,柴可能取代王熙凤)

现在'.'事情是这样的。'#'一堵墙。薛期呵对宝让生活远;

因此,选择一个最长的公路,让他们住在两端;

路达一个转折点。它是90;

像以下这张图:

#.#

##.

..#

最长的路是(图中*的位置)

#*#

##*

.*# 长度为3;

思路:

计算出每一个点在八个方向上的长度。

然后在把每一个点垂直两个方向的距离加起来(一个点有8种加法)

取全部点的最大值;

计算时,由于假设要算这个点 左上方 延伸多长,就要算算它左上方那个点能延伸多长,再加1(所以这时候左上方那个点必须已经算出来了)。

而要计算这个点 右下方 延伸多长,也是同理要先算出它右下方那个点;

所以有四个方向要从上往下遍历。

另外四个方向从下往上遍历;

AC代码:

#include
#include
#include
using namespace std;const int N = 105;char g[N][N];int n;int dir[8][2] = {
{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1},{1,0},{1,1},{0,1}};int dp[N][N][8];int main() { while(scanf("%d",&n) && n) { memset(dp, 0, sizeof(dp)); for(int i = 1; i <= n; i++) { getchar(); for(int j = 1; j <= n; j++) { scanf("%c",&g[i][j]); if(g[i][j] == '.') { for(int k = 0; k < 8; k++) { dp[i][j][k] = 1; } } } } for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) { if(g[i][j] == '#') continue; for(int k = 0; k < 4; k++) { int x = i + dir[k][0]; int y = j + dir[k][1]; if(x > 0 && y > 0 && x <= n && y <= n && g[x][y] != '#') { dp[i][j][k] += dp[x][y][k]; } } } } for(int i = n; i >= 1; i--) { for(int j = n; j >= 1; j--) { if(g[i][j] == '#') continue; for(int k = 4; k < 8; k++) { int x = i + dir[k][0]; int y = j + dir[k][1]; if(x > 0 && y > 0 && x <= n && y <= n && g[x][y] != '#') { dp[i][j][k] += dp[x][y][k]; } } } } int m = 0; for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) { for(int k = 0; k < 8; k++) { if(dp[i][j][k] + dp[i][j][(k + 2)%8] > m) m = dp[i][j][k] + dp[i][j][(k + 2)%8]; } } } printf("%d\n",m - 1); } }

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
一文读懂什么是Java中的自动拆装箱
查看>>
java函数式编程
查看>>
获5.3亿美金融资,亚马逊、红杉入局,自动驾驶“梦之队”Aurora还藏了哪些秘招?...
查看>>
C#-Xamarin利用ZXing.Net.Mobile进行扫码
查看>>
网站有漏洞被攻击篡改了数据该怎么修复解决
查看>>
抖音短视频开发项目跨入社交圈,头条实现社交梦?
查看>>
亲测 | 如何更高效的管理原生微服务应用
查看>>
jQuery UI 自定义样式的日历控件
查看>>
成为优秀UI设计师,必须了解的UI设计规范
查看>>
Memcached源码分析 - LRU淘汰算法(6)
查看>>
数据类型
查看>>
Jenkins 插件之环境变量插件EnvInject(学习笔记十三)
查看>>
PowerShell收集服务器日检报告,并发邮件给指定人员
查看>>
windows命令行删除所有文件和子目录
查看>>
网球机器人入侵火星 从单独工作到团队协作
查看>>
java中多种写文件方式的效率对比实验
查看>>
升级Xcode7之后如果遇到下面的错误
查看>>
浅谈React工作原理
查看>>
计划任务与系统日志管理
查看>>
Spring Security3配置使用
查看>>