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)看到还有一种解决方法就是穷举以每个字符为中心的回文长度,然后找出最大值

  • 相关阅读:
    zoj 3233 容斥原理 + 双条件
    bzoj 1038 瞭望塔 半平面交 + 最小值 枚举
    linux 常用命令
    Vue路由
    luffycity项目开发
    Vue组件化开发
    Vue对象提供的属性功能
    Vue快速入门
    Django-DRF(路由与扩展功能)
    Django-DRF(视图相关)
  • 原文地址:https://www.cnblogs.com/growup/p/1980631.html
Copyright © 2011-2022 走看看