码迷,mamicode.com
首页 > 其他好文 > 详细

HDU - 2859 Phalanx

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

标签:style   blog   os   2014   for   io   

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

思路: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

标签:style   blog   os   2014   for   io   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!