zoukankan      html  css  js  c++  java
  • [Luogu]P2344 [USACO11FEB]Generic Cow Protests G

    (Link)

    Description

    (Farmer John)(N) 头奶牛 (left(1 leq N leq 10^{5} ight)) 排成一列,正在进行一场抗议活动。第 (i) 头奶牛的理智度为 (a_{i}left(-10^{4} leq a_{i} leq 10^{4} ight))。他打算将所有的奶牛隔离成若干个小组,每个小组内的奶牛的理智度总和都要不小于(0)。一个小组内的奶牛位置必须是连续的。求满足条件的分组方案有多少种。(pmod{10^9+9})

    Solution

    首先很容易可以写出(dp)方程:(dp[i]=sumlimits_{j=1}^{i-1}dp[j](s[i]ge{s[j]}),dp[0]=1)

    但是这样做是(O(n^2))的。考虑如何优化。

    注意到要满足两个条件((jle{i-1})(s_jle{s_i})),其实就是一个二维数点。而(i,j)是天然有序的,我们可以在求出前缀和(s_i)后,先离散化一下,作为树状数组下标,再把(dp_i)依次加到树状数组里,算出答案就可以了。

  • 相关阅读:
    easyui datagrid 前后台代码
    JVM
    序列化
    Android UI设计
    多线程
    泛型
    字符串
    B+树:MySql数据库索引是如何实现的
    大数据判存算法:海量数据中快速判断某个数据是否存在
    陌生单词
  • 原文地址:https://www.cnblogs.com/andysj/p/13856908.html
Copyright © 2011-2022 走看看