zoukankan      html  css  js  c++  java
  • [笔记乱写]贪心进阶

    1.大力排序

    92B 数对:任意排序任意选取 $ ightarrow$ 限定顺序任意选取 $ ightarrow$ dp

    以两个元组为例,考虑所有情况的最优决策,并将规律转化为一类排序方式。

    exB X国的军队:可以把题意反过来,攻占一个需要$b[i]-a[i]$个士兵,且会得到$a[i]$个士兵。又因为$sum a[]$一定,所以按$b[i]-a[i]$排序即可。

    95B 格式化:考虑特殊情况,如果格式化后容量总是增大的,那么显然应该按格式化前容量从小到大排序。那么对于相反的情况,同上题一样逆向考虑,进行$rev-reformat$,不难看出此时应该按格式化后容量从大到小排序。所以分组考虑即可。

    74A 梦境:把区间按右端点排序,用set维护点,每次选能选的最靠左的那个。显然这样能使区间利用率最大。

    总结:考虑最优性、考虑可行性、逆向过程、利用率最大化、从特殊到一般、规律转化。

    2.带反悔

    64A trade:数据范围较小可以dp解决。如果贪心地考虑进行到某一天的状态,假设今天有单价为b的货物,且之前有单价为a$(a<b)$的货物,那么显然应该买a卖b。但这样只是对于当前情况的最优决策,之后可能出现与a配对结果更优的货物,所以需要带反悔。

     这里的巧妙之处在于把反悔过程直接嫁接到之前的决策上,而不用找到之前的决策点。

  • 相关阅读:
    【CCF】高速公路 tarjan强连通缩点
    【hihocoder】欧拉路径 并查集判连通
    【CCF】地铁修建 改编Dijkstra
    Android仿微信朋友圈图片展示实现
    android 禁止 recycler 滑动
    android中关闭软键盘
    java Math.pow 精度丢失问题
    Centos查看端口占用情况和开启端口命令
    centos 部署 php
    php undefinde function json_decode()
  • 原文地址:https://www.cnblogs.com/Rorschach-XR/p/11770960.html
Copyright © 2011-2022 走看看