关于一个傻逼bug调了一天的贪心傻逼题

这篇博客讲述了使用贪心算法解决一个关于军队配置最小数量的palantirs(具有覆盖范围的设备)来确保所有部队都在覆盖范围内的问题。通过排序和迭代找到每个palantir的最佳位置,从而达到最少的palantir数量。博客提供了样例输入和输出,并解释了题解思路,强调在贪心策略中考虑边界条件的重要性。
摘要由CSDN通过智能技术生成

话说俺写博客给自己看的,刷到了发现我好傻逼,别喷!

贪心算法周赛题解
贪心贪心贪心

关于最小点覆盖问题
学习ing,学会贴题目总结

题目描述:
Saruman the White must lead his army along a straight path from Isengard to Helm’s Deep. To keep track of his forces, Saruman distributes seeing stones, known as palantirs, among the troops. Each palantir has a maximum effective range of R units, and must be carried by some troop in the army (i.e., palantirs are not allowed to “free float” in mid-air). Help Saruman take control of Middle Earth by determining the minimum number of palantirs needed for Saruman to ensure that each of his minions is within R units of some palantir.

Input
The input test file will contain multiple cases. Each test case begins with a single line containing an integer R, the maximum effective range of all palantirs (where 0 ≤ R ≤ 1000), and an integer n, the number of troops in Saruman’s army (where 1 ≤ n ≤ 1000). The next line contains n integers, indicating the positions x1, …, xn of each troop (where 0 ≤ xi ≤ 1000). The end-of-file is marked by a test case with R = n = −1.

Output
For each test case, print a single integer indicating the minimum number of palantirs needed.
Sample Input
0 3
10 20 20
10 7
70 30 1 7 15 20 50
-1 -1
Sample Output
2
4

题意解释
有一个队伍,相当于一维坐标系,有n个点分布在一维坐标系上。有一些辐射范围为r的联通设备,试图用最少的联通设备使得所有的点在联通设备辐射范围内。

题解
据说就是贪心算法,在每单次处理过程中,取得最大成果。
第一次:把每个点位置从小到大排列,把flag2标记在最左边的位置;
接下来,用i做计数器,寻找最远但是距离flag2不超过r的点,标记为flag1,此处为第一个联通器所在位置;
以fl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KaaaterinaX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值