求上下界极值:
main(){
对每一组输入数据计算比值的上下界,
更新比值界限的极值
全局最大的最小比值和全局最小的最大比值
}
Note: V需要满足所有记录,所以取---->全局最大的最小比值和全局最小的最大比值
P9240 [蓝桥杯 2023 省 B] 冶炼金属(比值问题)_python冶炼金属-CSDN博客
逼近:
def calculate_minimized_standard_deviation(num, target_sum, values):
values.sort() # 对输入的值进行排序
for i in range(num):
# 计算剩余元素的新平均值
if values[i] <= t_aver:
# 如果当前元素小于或等于新平均值,支付该元素
else:
# 如果当前元素大于新平均值,则使用新平均值
# 计算并返回标准差
return (s / num) ** 0.5
Note: 标准差越小,每个数就越需要逼近平均数
博弈思想:
def race(horse_speeds):
# 如果田最快快于王最快
if fastest_horse(horse_speeds) == 'T':
# 消耗王最快
else:
# 如果田最慢快于王最慢
if slowest_horse > horse_speeds['W']:
# 用田最慢消耗王最慢
else:
# 用田最慢消耗王最快
Note: 田快就比,田慢,就慢比快
空间覆盖问题:
main(){
while(up,down)
// 转up,down房间号为走廊号l-r ((up+1)/2)
// 顺序由l->r的走廊计数加一
// 最后输出最大走廊计数
}
Note: 最多的冲突次数就是要搬的次数(不冲突可以同时搬)
活动选择问题:
main(){
//所有活动根据它们的结束时间进行排序
// 遍历选择结束时间最早的活动
// 选择后续的每个活动(开始时间不早于前一个被选择的活动的结束时间)
// 计数:记录并更新所能参加的最大活动数量。
}
Note: 贪心结论:最先结束的活动一定是最优解的一部分