• 初三复训考试2


    初三复训考试2

    初三学长太神力!!!!

    挂分日常

    A 怪物猎人

    背包变种

    会吃人

    题意就是在一堆物品中按顺序选k个使得下面式子小于某个数,求k的最大值

    [p=sum_{i=1}^{k}(a[i]+(i-1)*d)(b[i]+(i-1)*d) ]

    把它拆开以后是

    [p=sum_{i=1}^{k}(a[i]*b[i]+(a[i]+b[i])*(i-1)*d+(i-1)*(i-1)*d*d) ]

    如果物品已经排好序,那么(a[i]*b[i])((i-1)^2d^2)就是定值了不用考虑

    就直接跑一遍背包选数就可以了

    那按什么顺序排序呢

    [p'=sum_{i=1}^k (a[i]+b[i])*(i-1)*d ]

    这是去除常数之后的式子

    只与(a[i]+b[i])有关

    我们希望它最大

    发现((i-1)*d)是单调递增的

    即问题转化为有两个序列:(a_1,a_2,a_3,...,a_n)(b_1,b_2,b_3,...,b_n),求(sum_{i=1}^na_{p_i}b_{q_i})最大时的排列p和q

    用到排序不等式

    [两个从大到小排好序的序列\ 反序和 leq 乱序和 leq 顺序和 ]

    所以当(a[i]+b[i])单调递减的时候,(p')是最小的

    我们按它从大到小排序跑一遍背包就行了

    B 无敌的宠物

    线段树板子 注意pushdown位置要不然越界危

    C bamboo

    最短路建图题注意double最短路是最大值要在double范围内判无解的时候要用>=

    D 水杯

    题意:给一个序列,求O(nlogn)从一个数出发的最长上升子序列和最长下降子序列的和

    直接维护俩单调队列一个上升一个下降复习LIS写法有简单写法更简单的改板子了吐了

    E 大白兔的聚会

    原题考过原题luogu上原题没有上司的舞会原题

  • 相关阅读:
    USACO1.3.3Calf Flac
    USACO1.3.1Mixing Milk
    USACO1.3.2Barn Repair
    USACO2.1.4Healthy Holsteins
    USACO1.5.2Prime Palindromes
    USACO1.4.2The Clocks
    USACO2.1.2Ordered Fractions
    PHP关联数组教程
    你的服务器没有正确响应Token验证的解决方法
    微信公众平台消息接口开发(10)语音触发(非识别)
  • 原文地址:https://www.cnblogs.com/wsyunine/p/14959201.html
Copyright © 2020-2023  润新知