算法入门 6.Saruman‘s Army(贪心)

贪心算法三个经典例题 贪心算法的三个经典例题 A- Saruman’s Army 题目描述: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 pal... 阅读详情

Description
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

#include<iostream>
using namespace std;
int n,r;
const int maxn=1e7;
int a[maxn];
int sum;
void init(){
    cin>>n>>r;
    for(int i=0;i<n;i++) cin>>a[i];
}
void solve(){
    sort(a,a+n);
    int i=0;
    sum=0;
    while(i<n){
        int s=a[i++];
        while(i<r&&a[i]<=s+r) i++;
        int p=a[i-1];
        while(i<n&&a[i]<=r+p) i++;
        sum++;
    }
    cout<<sum<<endl;
}
int main(){
    init();
    solve();
}

C语言用三种策略实现贪心算法 贪心算法: 是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。但贪心算法并不能保证得到全局最优。本实验选择【-1背包问题】,请用贪心算法求解(贪心策略的选择是关键)。 问题如下:有一个背包,背包容量是150kg。现有8个物品,物品大小固定,即不可分割。 要求:尽可能让装入背包中的物品总价值最大,但前提条件是:不能超过总容量150kg。 8件物品的标号、重量、价值如下表所示: 物品 重量 价值 1 35kg 10 2 30kg 40 3 6kg 30 4 50kg 50 5 40kg 35 6 10kg 40 7 25kg 30 8 12kg 25 代码采用了三种策略来实现 立即下载

相关推荐

王珊数据库系统概论第5版视频教材

目录 隐藏 说明:本课程共包括1种电子书、84个高清视频(共68课时)、1种纸质书(赠品)。 网授课程 王珊《数据库系统概论》(第5版)网授精讲班【共68课时】 序号 名称 课时 1 第1章 绪 论(1) 00:32:25 2 第1章 绪 论(2) 00:17:03 3 第1章 绪 论(3) 00:50:19 4 第1章 绪 论(4) 00:20:37 5 第1章 绪 论(5) 00:24:47 6 第2章 关系数据库(1) 00:47:23 7 第2章 关系数据库(2) 00:14:48 8 第2章 关系

mrtaoy96的博客 1146

Saruman's Army

传送门 题目 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. Ea...

weixin_45653525的博客 1194

Curve+ 5.0.2:新一代色彩校准工具如何革新印刷行业标准

Curve+ 5.0.2作为新一代色彩校准工具,通过G7+校准算法和SCTV技术革新了印刷行业的色彩管理标准。该工具显著提升色彩精准度,减少打样时间和材料浪费,支持专色处理,实现跨材质色彩一致性,为印刷企业带来效率与质量的全面提升。

weixin_29228781的博客 529

POJ3069 Saruman's Army Greedy

很裸的题目 Saruman's Army Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2527   Accepted: 1261 Description Saruman the White must lead his army alon

1126

镜像电流源与比例电流源:原理、应用与性能优化

本文深入解析了镜像电流源与比例电流源的工作原理、核心应用与性能优化方法。镜像电流源利用匹配晶体管实现电流复制,是集成电路的基础;比例电流源通过发射极电阻实现电流缩放,应用更灵活。文章重点探讨了其作为有源负载提升放大器增益的关键应用,并分析了静态误差、输出阻抗和最小工作电压三大性能指标,最后介绍了威尔逊电流镜等进阶优化技术及实战设计要点。

dd012的博客 567

FOC项目知识点总结三 | 完全搞懂 Clarke 与 Park 变换(附动图,仿真文件以及详细讲解数学推导过程)

本文目的,最终可以完整推算两种变换 Clarke 变换 首先先看我们需要用到的两种坐标系 1. 自然坐标系 abcabcabc 我们知道,通过三相逆变电路,我们可以画出一个自然坐标系 abcabcabc ,即三相电压的坐标系,通入的电流在这三轴坐标系中变化: 将三个矢量相加合并在一起就如下图所展现: 使用三个坐标轴来表示十分的麻烦与不直观,因为其是非正交的,于是乎我们想要将其转化成使用两个正交的坐标轴来表示,于是乎便有了 Clarke变换。 Clarke 变换的作用: 将基于三轴二维的定子静止坐标系的各

Wilson Huang的博客 3万+

Saruman's Army 贪心

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 pala...

Annmike的博客 630

在实车上进行lio-sam测试

PS:将雷达和imu相对固定后,拆下来,原地晃啊晃,直到xyz进度达到百分百,参考gif。标定完成后,会在result文件夹下生成result.txt。

如果想成为中心,那么就到中心去吧。 997

Saruman‘s Army(贪心)

Saruman’s Army(贪心) Description 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 effect

Eagle222的博客 287

从技术债红线到系统治理:透视 SAP Clean Core 中的 Level D

SAP推出的Clean Core分级体系将扩展风险划分为A到D四个等级,其中Level D代表最高风险类别,涉及直接修改标准代码、隐式增强、使用noAPI对象等不被推荐的做法。这些做法虽然短期见效快,但会带来升级冲突、数据完整性风险等长期问题。SAP强调治理重点不是完全消除经典ABAP,而是优先清理Level D对象,逐步向稳定接口迁移。典型案例显示,依赖内部细节的扩展往往在系统升级或云迁移时集中暴露出问题。企业应通过工具链持续监控Level D占比,将其纳入技术债管理范畴。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1063

全网唯一OpenCyphal/UAVCAN教程(8)libcanard介绍

当Cyphal里,这个结构体代表一条完整的Cyphal消息,之后我们会根据metadata里提供的元信息,其实就是消息ID,调用对应的反序列化函数,将payload还原成具体的Cyphal消息。用于构造一个新的发送队列,原则上一个can物理接口需要分配一个发送队列,如果它们的MTU大小一致,是可以共用一条的。这个库不包含IO层,是平台无关的,意义是没有实现具体的数据收发,仅提供将发送出去的Cyphal消息转成can帧,以及将收到的can帧转成Cyphal消息。返回值是这条消息拆解成的can帧的数目。....

二进制君 2404

Saruman's Army(贪心)——区间问题

刚接触到区间问题这样的贪心题目,写篇博客记录一下 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, ...

ミ渴望ヽ不可及ゞ的博客 373

《Python星球日记》 第72天:问答系统与信息检索

《Python星球日记》 第72天:问答系统与信息检索,在前面的日子里,我们学习了自然语言处理的基础知识,包括文本预处理、词向量、Transformer架构和各种预训练模型。今天,我们将探索问答系统这一NLP的重要应用,以及如何结合信息检索技术构建智能问答系统。

Code_流苏:在代码中寻诗意,在实践中觅真知 1075

贪心算法——Saruman‘s Army(POJ 3069)

题目连接 http://poj.org/problem?id=3069 Saruman‘s Army(POJ 3069) 题目描述 Saruman the White must lead his army along a straight path from Isengard to Helm’s Deep. To keep track of his forces, Saruman dist...

Uitachi1的博客 642

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

POJ3069--Saruman‘s Army(贪心水题)

POJ3069--Saruman's Army(贪心水题)题目详解标准输入:标准输出:示例输入:示例输出:贪心思路:代码如下: 原题链接: POJ3069. 题目详解 直线上有N个点。点i的位置是Xi。从这N个点中选择若干个,给他们加上标记。对每一个点,其距离为R以内的区域内必须有带有标记的点(自己本身带有标记的点,可以认为与其距离为0的地方有一个标记点)。在满足这个条件的情况下,希望能尽可能少的添加标记。请问至少要有多少点被添加标记呢? 标准输入: 输入测试文件将包含多个案例。每个测试案例从包含整数R(其

m0_51155633的博客 350

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Saruman‘s Army poj3069(贪心)

传送门 3069 – Saruman’s Army (poj.org)给定数列,和一定半径r,要求用最少的数,覆盖整个数列。一个数k可以覆盖[k-r,k+r]的范围。贪心。从第一个点出发,找到第一个大于k+r的数,将它之前的一个数作为中间点last,它一定...

Crushlikearush的博客 169

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

POJ3069-Saruman‘s Army(贪心)

摘要: 本文解决了一个关于覆盖士兵位置的最少宝石数量问题。给定士兵位置和宝石的有效范围R,要求计算覆盖所有士兵所需的最少宝石数。采用贪心算法策略:1) 对士兵位置排序;2) 从左到右扫描,每次选择当前未被覆盖的最左士兵;3) 在R范围内最右士兵处放置宝石;4) 跳过该宝石能覆盖的所有士兵;5) 重复直至所有士兵被覆盖。该算法确保每次放置的宝石覆盖范围最大化,从而最小化宝石总数。时间复杂度为O(n log n),适用于R和n均不超过1000的规模。样例输入和输出验证了算法的正确性。

zaiyang遇见 1055

贪心算法——Saruman‘s Army

问题描述: 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 ofRunits, ...

qq_56769724的博客 278

POJ - 3069 Saruman‘s Army

Saruman’s Army POJ - 3069 AYIT-2021 609暑假集训第一周上 搜索和贪心 Description 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

武幻空的博客 188

贪心-Saruman‘s Army POJ - 3069

万恶之源

weixin_45574854的博客 453

每日一题 Saruman‘s Army

Saruman’s Army Description 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

撒浪嘿呦✨的博客 268

【贪心】Saruman's Army题解

一道贪心题。贪心的特点是找到局部最优解,做出当前的最好选择,且不能回退,只能一路往前。动态规划主要运用于二维或三维问题,而贪心一般是一维问题。 下面给出题目: Saruman's Army Description Saruman the White must lead his army along a straight path from Isengard to Helm’s...

aizhiyan2320的博客 310

POJ3069-Saruman‘s_Army

2. 我们要做的是,先以第一点为基准点(next),向后寻找能够被覆盖的最远点,将其设置为标记点(pointed)。为了“充分利用”这个标记点,我们继续向后寻找,找到那个在覆盖范围之外的最左侧的点,并且以这个点为基准(next),继续寻找下一个pointed点。1. 要想用最少的标记点去覆盖所有的点,那么我们就要使用贪心算法的思想。也就是说,要让一个标记点能够覆盖尽可能多的点。3. 所以,在一次循环中,我们需要找到next和pointed两个点,并且保证next不能越界。

m0_74368864的博客 400

POJ3069 Saruman‘s Army

知识点:贪心, 算法竞赛入门,开始学算法,要最开始学贪心,因为我觉得贪心就是蒙策略,模拟的比重很大,要有能把口头语言转化为程序的能力,这不就是模拟,动脑子的地方比较少,主要是前置知识也比较少,贪心就是适用范围广,比较原始的算法,二分还需要前缀和,前缀和学了差分肯定也不能少,并且二分的判断函数会用到很多算法,排序主要就是归并和快速,这两个和分治,递归有很大的关系,而贪心只要你模拟能力比较强,基本都能写对 看了08的一集视频回来整理了思路一下子就写出来了,贪心的策略,首先肯定要排序,然后不妨从左到右一个一个找,

qq_33942309的博客 251

POJ 3069 Saruman‘s Army

文章目录前言一、题目大意1.输入2.输出二、解题思路三、AC代码总结 前言 POJ题解这一系列文章主要记录《挑战程序设计程序设计》的课后习题,包括解题需要用到的知识,思路以及遇到的问题等等。 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目大意 直线上有N个点。点iii的位置是XiX_iXi​。从这N个点中选择若干,给它们加上标记。对每一个点,其距离为R以内的区域里必须有带标记的点(自身带有标记的点,可以认为与其距离为0的地方有一个带有标记的点)。在满足这个条件的情况下,希望能为尽可能少的点

jiaweilovemingming的博客 349
上一篇: 算法入门 5.字典序最小问题 Best Cow Line (贪心)
下一篇: 算法入门 7.0-1背包问题
郭晋龙
博客等级 码龄6年 940粉丝 449原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

郭晋龙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值