zoukankan      html  css  js  c++  java
  • bzoj3675 [Apio2014]序列分割

    Description

    (H) 最近迷上了一个分隔序列的游戏。在这个游戏里,小 (H) 需要将一个长度为 (n) 的非负整数序列分割成 (k+1) 个非空的子序列。为了得到 (k+1) 个子序列,小 (H) 需要重复 (k) 次以下的步骤:

    • (H) 首先选择一个长度超过 (1) 的序列(一开始小 (H) 只有一个长度为 (n) 的序列——也就是一开始得到的整个序列);

    • 选择一个位置,并通过这个位置将这个序列分割成连续的两个非空的新序列。

    每次进行上述步骤之后,小 (H) 将会得到一定的分数。这个分数为两个新序列中元素和的乘积。小 (H) 希望选择一种最佳的分割方式,使得 (k) 轮之后,小 (H) 的总得分最大。

    Input

    输入第一行包含两个整数 (n,k(k+1le n))

    第二行包含 (n) 个非负整数 (a_1,a_2,...,a_n(0le a_i le 10^4)),表示一开始小 (H) 得到的序列。

    Output

    输出第一行包含一个整数,为小 (H) 可以得到的最大分数。

    Sample Input

    7 3
    4 1 3 4 0 2 3

    Sample Output

    108

    Solution

    • (dp[i] = max(dp[j] + (s_i - s_j) imes s_j))

    • (j < k) , 从 (k) 转移由于 从 (j)

    那么

    • (dp[j] + (s_i - s_j) imes s_j < dp[k] + (s_i - s_k) imes s_k)

    化简一下

    • (frac {(dp[j] - s_j^2) - (dp[k] - s_k^2)} {s_k - s_j} < s_i)
  • 相关阅读:
    rip协议
    IP地址的计算以及子网掩码的计算
    jQuery知识点
    JavaScript 语言编程学习路线
    JS中AJAX知识
    .以及JDK1.5ConcurrentHashMap新特性
    Java程序执行顺序
    观察者设计模式
    Servlet中Filter的学习
    JDBC和连接池知识点
  • 原文地址:https://www.cnblogs.com/aziint/p/8416331.html
Copyright © 2011-2022 走看看