zoukankan      html  css  js  c++  java
  • USACOPROB Calf Flac

    在文件的读入,我开始是先整个读入到一个数组中,然后遍历数组再去除无效的字符,这种方式下,在第二个测试数据上就超时了。

    将字符串的处理在读入的时候就做,每次读入一个字符然后判断是有有效,有效的存入另外一个字符,并记录原来的字符位置。

    感觉这两种方式都是O(n)的时间,奇怪为什么前一种会超时啊~~~????

    (1)按照网上的 一个所谓的O(n)办法

    以当前字符结尾的最长回文长度计算:

    fn(i) = fn(n - 1) + 2  char(i) == char(n – fn(i -1) -1)

    fn(i) = 3  奇数

    fn(i) = 2  偶数

    else 1

    这种情况系的话,lvlvlvlv的计算结果就是 11335357 ,vlvlvlv

    应该的结果是遇到的第一个回文lvlvlvl

    (2)一种解决办法就是奇偶对称的分别计算

    用两个数组记录到字符i的最长奇、偶回文长度

    这次终于搞定了

    (3)看到还有一种解决方法就是穷举以每个字符为中心的回文长度,然后找出最大值

  • 相关阅读:
    gulp模块编译
    微擎数据库表-T
    微信小程序自动识别姓名电话地址
    PHPBase64格式编码图片
    HTML中Data的数据类型
    EPP状态码
    WePay-T
    HTML-T
    PHPNamespace命名空间
    jQuery:jQuery简介
  • 原文地址:https://www.cnblogs.com/growup/p/1980631.html
Copyright © 2011-2022 走看看