zoukankan      html  css  js  c++  java
  • 普及组杂谈

    为啥是普及组???

    因为我菜啊,普及组的东西都不知道。。。

    1. O(n)求数列最大连续子段和

    用递推,last表示取到上一个位置最大的连续子段和

    for(int i=1;i<=n;i++){

        last=max(last,0)+a[i];

        ans=max(ans,last);

    }

    对于环形数组呢?

    首先讨论,环形和线型的关系,就是a[1]与a[n]相连

    所以ans有两种情况:过a1,an之间的隔板,或者不过

    对于不过,直接线性求,对于过,那最小连续子段和就不过

    所以线性求maxn,minn

    ans=max(maxn,sum-minn)

    2. 当图比较稠密(有重边? 的时候,最短路的队列改成优先队列(堆优化???) 虽然多了一个log 但是会快很多

    (luoguP1951)

    to be continue;

     3. 费用流

    费用流的模板已经放在博客里了,为什么还是要放模板呢? 在网上找费用流模板的时候,发现,诶怎么都是单路增广。唯一一个名字叫zkw费用流的是多路增广。hzwer的博客里zkw的spfa是从T跑到S的,看得很别扭,导致我一直以为就是必须反着写。其实不然,正反是一样的,仔细看看,这不就是网络流的bfs改成spfa嘛,没啥区别啊。

    4. LIS

    nlogn时间求出最长lis 用单调队列的思想

    dp[i]表示长度为i的lis末尾最小的数是多少 len表示最长长度(网上其它博客也有我就不说了)

  • 相关阅读:
    建立适当的索引
    Windows 10Bash命令
    代码生成工具介绍和使用
    分布式的任务调度框架
    Net分布式系统
    Keepalived+LVS+Nginx负载均衡之高可用
    call,apply,bind
    2015搜狐在线笔试题(内存泄露问题)(转)
    十步完全理解SQL(转)
    Linux shell用法和技巧(转)
  • 原文地址:https://www.cnblogs.com/Amphetamine/p/7234587.html
Copyright © 2011-2022 走看看