[hdu4495]二分,字符串hash,DP
2015-06-05 21:43
169 查看
题意:在一个有字母和数字组成的矩形里面找最大的等腰对称直角三角形,直角边分别平行于矩形边,对称的意思是对称轴两边的字符相同。
思路:首先考虑一种情况,三角形的直角边在右方和下方,对于其它情况可以通过旋转矩形来得到。这样令dp[i][j]表示直角点在(i,j)的最大三角形的直角边的长度,不难得到dp[i][j] = max(dp[i-1][j-1] + 2, len)。len表示从(i,j)向左和向上两个方向上的字符串"最长公共前缀"的长度。此类匹配问题用二分+hash来说简直妙不可言~
思路:首先考虑一种情况,三角形的直角边在右方和下方,对于其它情况可以通过旋转矩形来得到。这样令dp[i][j]表示直角点在(i,j)的最大三角形的直角边的长度,不难得到dp[i][j] = max(dp[i-1][j-1] + 2, len)。len表示从(i,j)向左和向上两个方向上的字符串"最长公共前缀"的长度。此类匹配问题用二分+hash来说简直妙不可言~
相关文章推荐
- 构造水题 Codeforces Round #206 (Div. 2) A. Vasya and Digital Root
- An Adaptive Communication Architecture for Wireless Sensor Networks
- 归一化
- iOS - 版面实现记录五
- 动态修改script标签中的src属性存在的问题
- php+MySQL图书管理系统(一)
- Android系统手机端抓包方法(tcpdump)
- 【JSOI 2008】【BZOJ 1016】最小生成数计数
- android-volley 图片缓存分析与比较Volley , Universal-Image-Loader 和 picasso
- 【教材】用OllyDbg找出Agth提取GAL文本的特殊码(详细新人版)
- 我理解设计模式C++实现观察者模式Observer Pattern
- UINavigationController 导航控制器
- JSP基本用法(一)运行机制和语法
- rime协议栈简介
- 树的子结构
- Gosicfly的C/C++学习笔记(1)简单的回调函数使用
- MFC
- 优先队列题目整理
- 全文本四则运算算法实现(非预处理四则运算算法)
- [GUI] Linux中的图形管理