• 模拟88 题解


    A. 军训队列

    仔细看题,会发现问题是随便交换位置。

    为了使答案更小,显然可以进行排序后$dp$。

    有$dp_{i,k}=dp_{j-1,k-1}+(a[i]-a[j])^2$。

    拆开平方式会发现是最简单的斜率$dp$式,而且$a$数组是单调的。

    所以用单调队列维护一下凸包就完了。

    因为在维护凸包的过程中需要计算交点,所以避免除$0$,要$unique$一下。

    B. 山屋惊魂

    模拟题。

    设$f_{i,j}$表示$i$个色子,投出$j$的概率。

    $dp_{i,j,k,u,v}$表示$i$步之后,属性阶分别为$j,k,u,v$的概率。

    按照题中说的做,暴力转移就完了。

    不需要关注失败的情况,只要最后用$1$减去成功的概率就完了。

    C. 彩球问题

    观察数据范围,发现似乎是状压题。

    暴力状压复杂度不是很对,所以可以分组状压。

    个数相同的球是等价的,可以分在同一组里,同一组内的状态可以排序,大大减少状态数。

    所以最终的状态数只有一万多,暴力转移就完了。

    然而正解更加优秀一些。

    实际上问题可以不断地划分为子问题,而且只需要关注最后一位的小球个数,并不关注每个小球属于哪一组。

    所以设$f_{i,j,k,d}$,表示1个球的剩下$i$个,2个球的剩下$j$个,3个球的剩下$k$个,最后一个的个数为$d$。

    $O(1)$转移,复杂度是$O(n^3)$的。

  • 相关阅读:
    codeforces 407B Long Path
    CodeForces 489C Given Length and Sum of Digits...
    hacker cup 2015 Round 1 解题报告
    hacker cup 2015 资格赛
    Codeforces 486(#277 Div 2) 解题报告
    POJ 3468 A Simple Problem with Integers splay
    Codeforces 484(#276 Div 1) D Kindergarten DP
    求平均值问题201308031210.txt
    I love this game201308022009.txt
    QQ
  • 原文地址:https://www.cnblogs.com/skyh/p/11742435.html
Copyright © 2020-2023  润新知