HDU4846->区间DP
来源:互联网 发布:塞班软件下载网站 编辑:程序博客网 时间:2024/05/29 03:39
题意:给出一个图,求图中不包含‘#’的正方形的最大边长
题解:DP解决,dp[i][j]代表以(i,j)为右下角顶点的正方形的最大边长
状态转移方程:if(MAP[i][j]=='#') dp[i][j] = 0 ;
else dp[i][j] = min(dp[i][j-1] , min(dp[i-1][j] , dp[i-1][j-1]))+1 ;
#include <stdio.h>#include <iostream>#include <string.h>#include <algorithm>using namespace std ;#define MAX 1005int m , num , ans;int dp[MAX][MAX] ;char MAP[MAX][MAX] ;void DP(){for(int i = 0 ; i <= m ; i ++){dp[i][0] = 0 ;dp[0][i] = 0 ;}for(int i = 1 ; i <= m ; i ++){for(int j = 1 ; j <= m ; j ++){if(MAP[i][j] == '#') dp[i][j] = 0 ;else{dp[i][j] = min(dp[i][j-1] , min(dp[i-1][j] , dp[i-1][j-1]))+1 ;}ans = max(ans , dp[i][j]) ;}}}int main(){while(scanf("%d%d" , &m , &num) != EOF){memset(MAP , '.' , sizeof(MAP)) ;int x , y ;while(num--){scanf("%d%d" , &x , &y) ;MAP[x][y] = '#' ;}ans = 0;DP();printf("%d\n", ans);}return 0;}
0 0
- HDU4846->区间DP
- hdu4846 最大子正方形(dp)
- 区间DP
- 区间DP
- 区间DP
- 区间DP
- ##区间dp##
- 区间dp
- 区间DP
- 区间dp
- 区间dp
- 区间dp
- 区间dp
- 区间dp
- 区间dp
- 区间dp
- 区间DP
- 区间DP
- CCNA系列四之VLAN
- PWM波形输出
- HDOJ 1715 大菲波数
- 函数、数组区别以及函数注意点和回调函数,以及删除字符串中出现次数最少的字符的程序
- Sublime Text中文乱码问题(Windows平台)
- HDU4846->区间DP
- NYOJ45棋盘覆盖
- 自己编写ls命令
- Java读写xml-dom4j篇
- opencv移植到arm开发板
- android系统编译jdk版本
- jQuery Mobile 可折叠块
- linux系统服务daemon(1)
- Linux-c 编程基础(一)