首页 > 其他分享 >贪心

贪心

时间:2024-12-27 15:41:28浏览次数:4  
标签:frac max 邻项 血量 交换法 贪心

贪心

邻项交换法

对于两项 \((a_x,b_x),(a_y,b_y)\),我们比较谁在前面谁在后面,只需要比较仅有这两项的情况下,谁前谁后是更优的。满足 \(a_i\ge b_i\)。

若 \(x\) 在 \(y\) 前,所需要的血量为 \(\max(a_x,b_x+a_y)\)。

若 \(y\) 在 \(x\) 前,所需要的血量为 \(\max(a_y,b_y+a_x)\)。

我们不妨认为血量是大于 \(\max(a_x,a_y)\) 的。因此我们只需要比较 \(b_x+a_y\) 和 \(b_y+a_x\) 的大小关系,就知道先杀谁会比较好了。

2-其他算法-贪心-邻项交换法

P1080 [NOIP2012 提高组] 国王游戏

对于大臣 \(x,y\),计算 \(val(x,y)<val(y,x)\) 这个不等式成立的条件。

\[\max(\frac{1}{b_x},\frac{a_x}{b_y}) < \max(\frac{1}{b_y},\frac{a_y}{b_x}) \]

因为我们总是有 \(\frac{1}{b_x}<\frac{a_y}{b_x}\) 和 \(\frac{1}{b_y}<\frac{a_x}{b_y}\),所以直接按照 \(\frac{a_x}{b_y}<\frac{a_y}{b_x}\) 排序就可以了。建议移项再比较。因为要写高精度,所以我不写了。

标签:frac,max,邻项,血量,交换法,贪心
From: https://www.cnblogs.com/liyixin0514/p/18635910

相关文章

  • 代码随想录——贪心23监控二叉树
    思路这道题目首先要想,如何放置,才能让摄像头最小的呢?从题目中示例,其实可以得到启发,我们发现题目示例中的摄像头都没有放在叶子节点上!这是很重要的一个线索,摄像头可以覆盖上中下三层,如果把摄像头放在叶子节点上,就浪费的一层的覆盖。所以把摄像头放在叶子节点的父节点位置,才......
  • 贪心算法之分发糖果--附java完整代码
    leetcode135.分发糖果classSolution{/**分两个阶段1、起点下标1从左往右,只要右边比左边大,右边的糖果=左边+12、起点下标ratings.length-2从右往左,只要左边比右边大,此时左边的糖果应该取本身的糖果数(符合比它......
  • 贪心总结
    每次都选当下的最优解,一步步得到全局的最优。可以贪心的题目的性质最优子结构性质:选择当前问题的最优决策不会影响子问题的最优决策。贪心选择性:当前决策依赖于已经做出的决策,且决策一旦做出边不能更改。证明贪心策略正确的方法反证法:如果交换某两个元素后不会得到更......
  • 贪心
    在数轴上给n个区间,要在数轴上放尽量少的点,使每个区间内都有点。先将所有区间按右端点从小到大排序,然后考虑对于每个区间,若其涵盖最后一个选的点,则不用放,否则在该区间右端点上放个点。(例)哈夫曼树与哈夫曼编码:给定若干个叶子节点点权,构造一棵k叉树,要所有叶子到根距离乘叶子点权......
  • Problem: 1338. 数组大小减半 贪心 模拟 法 简单易懂
    Problem:1338.数组大小减半思路因为要选择最小的整数集合,这里用Counter容器来统计下所有各种数字的大小,然后按照值来排序,设置target来表示要到达什么位置,这里最好不要用整除,防止要计算的大于arr,但是len(arr)是奇数,这里total表示删除到这个位置已经删除了多少数字,如果大......
  • 传知代码-改进贪心算法(NGSOR)
    一、算法背景及意义(一)背包问题背景背包问题是组合优化领域中的经典问题,具有广泛的实际应用场景,如资源分配、项目投资决策等。扩展简化折扣{0-1}背包问题(ESD{0-1}KP)是背包问题的一种变体,它在传统背包问题的基础上增加了一些复杂的约束条件,如物品的折扣系数以及每个项集中多个......
  • 加油站问题(贪心)
    题目:在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组 gas 和 cost ,如果你可以按顺序......
  • 贪心算法 part03
    文章参考来源代码随想录134.加油站方法一分类讨论:情况一:如果gas的总和小于cost总和,那么无论从哪里出发,一定是跑不了一圈的情况二:rest[i]=gas[i]-cost[i]为一天剩下的油,i从0开始计算累加到最后一站,如果累加没有出现负数,说明从0出发,油就没有断过,那么0就是起点。情况三:如......
  • 贪心策略(未完结)
    每次都试图解决问题的尽量大的一部分如兑换硬币,先以最多数量的最大面值来迅速减少找零面值首先确定基本结束条件(最直接的情况——其面值正好等于某种硬币)减小问题的规模递归算法:#!/user/bin/envpython3#-*-coding:utf-8-*-defrecMC(coinValueList,change):mi......
  • 贪心算法专题(四)
    目录1.单调递增的数字1.1算法原理 1.2算法代码2.坏了的计算器2.1算法原理2.2算法代码3.合并区间3.1算法原理3.2算法代码4.无重叠区间4.1算法原理4.2算法代码5.用最少数量的箭引爆气球5.1算法原理​5.2算法代码1.单调递增的数字738.单调......