[jzoj]3479. 【NOIP2013模拟联考9】工作安排(work)

来源:互联网 发布:淘宝开放平台 什么 编辑:程序博客网 时间:2024/05/22 02:00

Problem

给定n个数,要求分成若干段,每一段长度至少为k,且一段的贡献为(maxmin)2+C,求最小贡献.

Data constraint

对于50%的测试数据中保证有N≤1000。

对于70%的测试数据中保证有N≤50000。

对于100%的测试数据中保证有N≤1000000。

Solution

  • 乍一看,这道题裸裸的DP,貌似可以用斜率优化?

  • 于是推了一波式子:

    • w(j)表示(max{j+1..i}min{j+1..i})

    • 按照斜率优化的一般套路那就是:

      • 若一个点j不必k劣,则必须满足

      • f[j]f[k]w(j)w(k)>=1,令t(j,k)f[j]f[k]w(j)w(k)>=1

      • 然后,我naive地又按照套路,如果一个t(j,k)>t(k,p),那么k一定无用.

    • 然而,我冥思了一下,发现这斜率优化不是这么用得啊

    • 用斜率优化的前提是必须保证决策单调性

    • 而发现w(j)w(k)既不是单调递增,也不是单调递减.

    • 所以这么推式子根本不能用斜率优化.

  • 然而,当我思考人生一个小时后,无意中打开总结一看,发现,wjq说了一句:“第一题将题目曲解为“每个工人选连续的一段工作”,10分”

  • 我就TMwhat了.

  • 我靠,看错题!!!!!

  • 原来,每一段并不一定要求连续.

  • 这样一来,这道题就太水了.

  • 因为我们知道最优答案的一段一定是排完序后的一段.

  • w(j)w(k)变成单调递增了,直接单调队列就好了,什么辣鸡斜率?

阅读全文
0 0
原创粉丝点击