`
leonluchen
  • 浏览: 30413 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

USACO Section 1.3.3 [Calf Flac] Java题解

阅读更多
题意分析:
一眼看上去,又是找对称的,不过有一些明显的干扰因素,比如是从一堆很长的字符中(最长为20000个)找出对称的最长字符串(最长为2000个);找出的对称字符串中允许有其它干扰的字符whitespace以及其他符号;最长的长度是指不包含非字母的,而输出的对称字符串是包含非字母的等。

解题思路:
输入的读取方式和之前的不一样,因为要读取所有字符,while(in.ready()) …= (char)in.read();这种形式。第二个难点是容易去想难了,因为一眼看上去数量级肯定要TLE,但是仔细想想,对称的话,只有AABAA,AABBAA这样两种形式,就算是枚举以每一个字符为中心的所有字符,至多为2×2000×20000=八百万,一亿的计算量约为1秒左右,所以八百万应该不会TLE。如果能想通这一点,之后的处理,就只需要小心谨慎了。

代码实现:
https://github.com/leonlu/USACOJavaSolution/blob/master/USACOSection1/src/calfflac.java
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics