zoukankan      html  css  js  c++  java
  • 「算法」贪心

    证明方法

    (1.)反证法:交换当前状态下的两个元素后,答案不会变得更优,则当前状态已经是最优解

    (2.)归纳法:先证明边界(n=1)成立,再证明(F_n)成立时(F_{n+1})成立

    常见类型

    交换邻项排序贪心

    例题

    [NOIP2012 提高组] 国王游戏

    (p_1)的参数为(a_1,b_1)(p_2)的参数为(a_2,b_2)

    (p_1)在前时,(ans_1=max{frac{s}{b_1},frac{s*a_1}{b_2}})

    (p_2)在前时,(ans_2=max{frac{s}{b_2},frac{s*a_2}{b_1}})

    (p_1)在前比(p_2)在前代价更大,则

    [ans_1>ans_2\ max{frac{s}{b_1},frac{s*a_1}{b_2}}>max{frac{s}{b_2},frac{s*a_2}{b_1}}\ ]

    (frac{s}{b_1}>frac{s*a_1}{b_2}),则(ans_2=frac{s*a_2}{b_1}>frac{s}{b_1})不成立

    所以(frac{s*a_1}{b_2}>frac{s}{b_1}),且(frac{s*a_1}{b_2}>frac{s}{b_2})

    那么满足(p_1)在前代价更大的条件是

    [frac{s*a_1}{b_2}>frac{s}{b_1}\ frac{s*a_1}{b_2}>frac{s*a_2}{b_1} ]

    解得

    [a_1*b_1>a_2*b_2 ]

    所以只要将大臣们按(a_i*b_i)从小到大排序即可

    反悔贪心

    [USACO09OPEN]Work Scheduling G

    先假设所有工作都做,按截止时间排序后入队

    判断第(i)项做不做时,若任务安排满了,则判断能否替换当前价值最小的已做的工作

  • 相关阅读:
    LNMP架构三
    LNMP架构二
    LNMP架构
    LAMP架构三
    LAMP架构二
    LAMP架构
    rsync工具介绍
    mysqldump备份单表数据
    阿铭每日一题 day 14 20180125
    阿铭每日一题 day 13 20180124
  • 原文地址:https://www.cnblogs.com/knife-rose/p/15320649.html
Copyright © 2011-2022 走看看