zoukankan      html  css  js  c++  java
  • pku1631Bridging signals(动态规划题+二分搜索)

    420K 125MS GCC 596B 2009-01-11 00:56:04

    技巧:设置一个数组a[i]

    存放所有长度为i的上升子序列中最小的末元素值,比如说只有两个长度为3的上升子序列123和124,那么a[3]中存放的就是3(末元素3<4)

    那么当来一个新数data时,如果它的值大于最长长度的末元素的值(即a[ans]),则ans++;且a[ans]=data;

    否则,通过二分查找(数组a中的元素为递增),将最接近data且大于data的那个元素更新为data。

    代码如下:

     

    Code
  • 相关阅读:
    第三百九十一、二、三、四、五、六、七天 how can I 坚持
    第三百九十天 how can I 坚持
    第三百八十九天 how can I 坚持
    POJ 1745:Divisibility 枚举某一状态的DP
    POJ 1502:MPI Maelstrom Dijkstra模板题
    POJ 1160:Post Office 邮局经典DP
    POJ 1062:昂贵的聘礼
    POJ 1125:Stockbroker Grapevine
    POJ 1236:Network of Schools
    POJ 2186:Popular Cows Tarjan模板题
  • 原文地址:https://www.cnblogs.com/pandy/p/1373546.html
Copyright © 2011-2022 走看看