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

HDU - 2859 Phalanx(dp)

时间:2017-09-17 13:39:57      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:i++   div   blank   char   style   map   str   algorithm   nbsp   

题目链接:点我点我

题意:求以左下到右上的最大对称矩阵。

题解:对于每个点(以它为一个矩阵的最左下角),判断一下它右边的第一个点和上面的第一个点,如果相同就再往下判断下去,直到不相同,取当前位置能拿到的值。

如果一直相同,说明这个最左下脚的点能够加入进去成为一员,+1呗。

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 const int N=1111;
 6 char map[N][N];
 7 int dp[N][N];
 8 
 9 int main(){
10     int n;
11     
12     while(cin>>n&&n){
13         int ans=0;
14         for(int i=1;i<=n;i++)
15         for(int j=1;j<=n;j++)
16         cin>>map[i][j];    
17         
18         if(n==1) {cout<<1<<endl;continue;}
19         for(int i=1;i<=n;i++) dp[i][n]=dp[1][i]=1;
20         
21         for(int i=2;i<=n;i++){
22             for(int j=1;j<n;j++){
23                 int idx=0;
24                 for(int k=1;k<=dp[i-1][j+1];k++){
25                     if(map[i-k][j]!=map[i][j+k]) {dp[i][j]=k;idx=1;break;}
26                 }
27                 if(!idx) dp[i][j]=dp[i-1][j+1]+1;
28                 ans=max(ans,dp[i][j]);
29             }    
30         }    
31         
32         cout<<ans<<endl;
33     }
34     
35 }

 

HDU - 2859 Phalanx(dp)

标签:i++   div   blank   char   style   map   str   algorithm   nbsp   

原文地址:http://www.cnblogs.com/Leonard-/p/7534876.html

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