首页 > 其他 > 详细

HDU - 2859 Phalanx

时间:2014-07-06 00:10:52      阅读:345      评论:0      收藏:0      [点我收藏+]

题意:求/直线的对称矩阵最大多大

思路:DP 每个点就是了

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 1200;

int dp[MAXN][MAXN];
char str[MAXN][MAXN];
int n;

int main() {
	while (scanf("%d", &n) != EOF && n) {
		for (int i = 0; i < n; i++)
			scanf("%s", str[i]);
		int ans = 1;
		for (int i = 0; i < n; i++) 
			for (int j = 0; j < n; j++) {
				if (i == 0 || j == n-1) {
					dp[i][j] = 1;
					continue;
				}
				int cnt1 = i, cnt2 = j;
				while (cnt1 >= 0 && cnt2 < n && str[i][cnt2] == str[cnt1][j]) {
					cnt1--;
					cnt2++;
				}
				int cur = i-cnt1;
				if (cur >= dp[i-1][j+1]+1) 
					dp[i][j] = dp[i-1][j+1] + 1;
				else dp[i][j] = cur;
				ans = max(ans, dp[i][j]);	
			}
		printf("%d\n", ans);
	}
	return 0;
}



HDU - 2859 Phalanx,布布扣,bubuko.com

HDU - 2859 Phalanx

原文:http://blog.csdn.net/u011345136/article/details/36921733

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!