题意:求一个n*m的矩阵里面的最大的一个对称等腰直角三角形,三角形的腰必须平行于矩阵的边,n,m<=500。
解题思路:腰平行于矩阵的边,其实也就是做四个方向,首先找到每一个点的最长腰f[i][j],这里可以用二分+hash做。接下来就是找某一个点为顶点的面积最大的等腰直角三角形,dp[i][j]表示以(i,j)为顶点的三角形的最长边。根据题意可以知道,dp[i][j]=min(f[i][j],dp[i-1][j-1]+2).
参考博客:http://blog.csdn.net/no__stop/article/details/16959089
代码就不写了,参考博客的吧。。