数据结构与算法——在一定范围内求最少标记点

手把手调试Altera FPGA远程升级:从ASMI扇区擦除到Remote Update IP配置的避坑实录 本文详细解析了Altera FPGA远程升级的全流程,重点介绍了Cyclone IV系列FPGA的ASMI扇区擦除和Remote Update IP配置的实战技巧。通过双镜像架构设计、ASMI IP核优化配置及Remote Update IP的隐藏参数设置,帮助开发者避免常见陷阱,提升远程升级的可靠性和效率。 阅读详情



思路就是每到一个点的时候,不要首先想着把它标记,而是应该先看前面的那个点是否已经标记:
如果前面的那个点没有标记,并且该点后面的点到前面的那个点的距离大于R,则将当前点标记;
如果前面的那个点没有标记,并且该点后面的点到前面的那个点的距离小于R,则不标记当前点;

每次都不想标记当前点,总是想着标记后面的那个点也可以;当实在是不行的时候再标记当前点;

伪代码:
if(i = 1)
if(X(i+1)- X(i) > R) 
将Xi标记book[i] == 1
else 
i++
else if(i<N)
if(book[i-1] == 0  &&  X(i+1)- X(i-1)>R )
将Xi标记book[i] == 1
else if(book[i-1] == 0  &&  X(i+1)- X(i-1)<R)
i++;
else if (i == N && X(i)- X(i-1)> R)
将Xi标记book[i] == 1


/*************************************************************************
	> File Name: 224.cpp
	> Author: 
	> Mail: 
	> Created Time: 2015年12月14日 星期一 21时38分27秒
 ************************************************************************/

#include <iostream>
#include <vector>
using namespace std;

void input_data(int * number, int * r, vector<int>  & x, vector<int> &book)
{
    cout << "输入点的个数:";
    cin >> *number;
    cout << "输入半径的大小: ";
    cin >> *r;
    cout << "输入每个点的位置: ";
    int i = 0;
    int val;

    while(i != *number){
        cin >> val;
        x.push_back(val);
        book.push_back(0);
        cin.get();
        i++;
    }
}


void output_data(int * number, int *r, vector<int> & x, vector<int> &book)
{
    cout << "N = " << *number << endl;
    cout << "r = " << *r << endl;
    cout << "X = ";
    for (vector<int>::iterator pos = x.begin(); pos != x.end(); ++pos){
        cout << *pos << " ";
    }
    cout << endl;
    for (vector<int>::iterator pos = book.begin(); pos != book.end(); ++pos){
        cout << *pos << " ";
    }
    cout << endl;
}

void solve(int * number, int * r, vector<int> & x, vector<int> & book)
{
    int i = 0;
    while(i < x.size()){
        if(i == 0){
            if(x[i+1] - x[i] > *r){
                book[i] = 1;
            }
        }
        else if(i < *number-1){
            if(book[i-1] == 0 && x[i+1]-x[i-1] > *r){
                book[i] = 1;
            }
        }
        else if (i == *number-1 && x[i]-x[i-1] > *r){
            book[i] = 1;
        }
        i++;
    }

    cout << "the result is :";
    for (i = 0; i < book.size(); ++i){
        if (book[i] == 1)
            cout << x[i] << " ";
    }
    cout << endl;
}


int main()
{
    int N, R;
    vector<int> X;
    vector<int> book;

    input_data(&N, &R, X, book);
    //output_data(&N, &R, X, book);
    solve(&N, &R, X, book);

    return 0;
}


Python爬虫实战:5分钟搞定东方财富A股数据抓取(附完整代码) 本文提供了一套基于Python的A股数据自动化采集与分析系统构建方案。文章详细解析了如何通过稳健的爬虫框架从东方财富等公开数据源高效抓取A股数据,并设计数据库进行自动化存储与管理,特别适合量化研究和数据分析场景。 阅读详情

相关推荐

多目标优化NSGA-II(快速精英非支配排序遗传算法)及python实现

文章目录前言一、什么是NSGA-II?二、学习NSGA-II1.快速非支配排序算法2.密度估计3.拥挤比较算子4.主循环5.代码6.总结 前言 NSGA-II适用于复杂的多目标优化问题,是K-Deb教授在2000年在一篇paper《MOEAs — A fast and elitist multi-objective genetic algorithm: nsga2》提出。 Keywords: optimization; multi-objective evolutionary algorithm; no

ricky_blog 9744

poj 3069 Saruman's Army 【贪心】【最少标记点】

Saruman's Army Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6008   Accepted: 3065 Description Saruman the White must lead his army along a straight path

dxx_111的博客 512

告别环境配置烦恼:Docker容器化一站式搭建Zephyr RTOS开发环境

本文详细介绍了如何使用Docker容器化技术一站式搭建Zephyr RTOS开发环境,彻底解决环境配置不一致、依赖冲突等难题。通过预构建镜像、数据卷挂载和实战编译示例,帮助开发者快速获得隔离、一致且可复现的嵌入式开发环境,大幅提升开发效率和团队协作体验。

n8m7b6v5c4的博客 189

数据结构(Tsinghua--范围查询(Range))

描述 数轴上有n个点,对于任一闭区间 [a, b],试计算落在其内的点数。 输入 第一行包括两个整数:点的总数n,查询的次数m。 第二行包含n个数,为各个点的坐标。 以下m行,各包含两个整数:查询区间的左、右边界a和b。 输出 对每次查询,输出落在闭区间[a, b]内点的个数。 样例 Input 5 2 1 3 7 9 11 4 6 7 12 Output 0 3 限制 0 ≤ n, m ≤ 5×105 对于每次查询的区间[a, b],都有a ≤ b 各点的坐标互异

Yanpr919的博客 2026

Hopfield神经网络(HNN)详解

Hopfield神经网络是一种比较特殊的网络,它不像一般的神经网络那样有输入层和输出层,并且通过训练来改变神经网络中的参数,最终实现预测、识别等功能。Hopfield网络只有一群神经元节点,所有节点之间相互连接,形式如下: 虽然有些文章会画出像深度神经网络那样有输入输出的图,并且输出后又返回输入,但本质上就是多个节点之间的全连接,也就是上面的图形。Hopfield神经网络主要有两个应用:一是起到类似储存器的作用,也就是我们把多个序列或图片输入这个网络,最终这个网络会以神经元之间连接权重的形式储存这

weixin_60737527的博客 4万+

matlab 用m_map画地形水深图

clear,clc %投影 m_proj('albers equal-area','lat',[5 43],'long',[105 125],'rect','on'); %加载水深文件 [CS,CH]=m_etopo2('contourf',[-7000:500:3000],'edgecolor','none'); %绘制高分辨率陆地和海岸线 m_gshhs_h('patch',[0.1 0.9 ...

qq_44913577的博客 9511

Tsinghua mooc 数据结构上 范围查询(Range) 快排+二分

先补一波mooc上数据结构的题,题面如下: Descriptioin Let S be a set of n integral points on the x-axis. For each given interval [a, b], you are asked to count the points lying inside. Input The first line contains ...

wbl1970353515的博客 1463

hive sql每个用户的累积访问次数

我们有如下的用户访问数据 userId visitDate visitCount u01 2017/1/21 5 u02 2017/1/23 6 u03 2017/1/22 8 u04 2017/1/20 3 u01 2017/1/23 6 u01 2017/2/21 8 U02 2017/1/23 6 U01 2017/2/22 4 要求使用SQL...

weixin_39150719的博客 3479

HarmonyOS6 半年磨一剑 - RcSlider 三方库插件标记点系统与间断点渲染机制深度解析

当滑块轨道上需要标注关键刻度时,单纯的数字范围往往不够直观。rchoui三方库插件的RcSlider标记点(Marks)允许在任意数值位置渲染文字说明,间断点(Stops)则在每个步长位置显示小圆点,让可选值一目了然。两套系统各司其职,又能组合使用,本文将深入解析它们的数据结构、渲染算法和适用场景。RcSlider的标记点系统通过联合类型设计灵活支持字符串和对象两种格式,精确的百分比定位算法保证了标记在任意轨道宽度下的像素级对齐。间断点系统与步长深度绑定,通过首尾排除减少视觉噪音。

全栈若城,专注知识分享 1万+

[STM32F103C8T6]W5500+Modbus TCP(HAL库)

本章节是博主学习Modbus TCP所写的一篇文章Modbus TCP是Modbus的一个分支,主要用到网口通信的,在工业上也用的很频繁,我们公司最近的项目就是用的W5500+modbus TCP来和PC端的上位机通信和交互的。虽然这个项目不是我在写代码,但是我都学了Modbus RTU了,那我也抽空学习一下Modbus TCP吧。本次的Modbus TCP不是博主写的,是一个大佬开源的一个W5500写的一个Mobus TCP代码,我在这个基础上自己写了主机读从机多个数据,和主机写从机寄存器的函数。

sinat_58149788的博客 4085

【ComfyUI】Wan2.2 动态服饰描述驱动换装图生视频

本文介绍了一个基于ComfyUI的Wan2.2动态服饰描述驱动换装工作流,能通过自然语言描述实现人物图像的自动换装并生成动态视频。该工作流结合多模态输入、语言模型驱动生成和视频合成技术,包含图像加载、文本解析(使用Qwen2.5大模型)、潜变量编码、视频帧采样与插值(RIFE VFI)等核心模块,最终通过VHS_VideoCombine输出流畅换装视频。整个流程无需手动干预,支持从"哥特风格"到"未来装甲"等多样化服饰风格的精确转换,通过文本节点控制50-100

Mr数据杨 2579

POJ3069标记点

#include #include using namespace std; int N; int R; void Solve() { /* N = 6; R = 10; int X[6] = {1, 7, 15, 20, 30, 50}; */ cin >> N; cin >> R; int X[N]; f

hxysea的专栏 658

推荐系统[一]:超详细知识介绍,一份完整的入门指南,解答推荐系统相关算法流程、衡量指标和应用,以及如何使用jieba分词库进行相似推荐,业界广告推荐技术最新进展

推荐算法其实本质上是一种信息处理逻辑,当获取了用户与内容的信息之后,按照一定的逻辑处理信息后,产生推荐结果。热度排行榜就是最简单的一种推荐方法,它依赖的逻辑就是当一个内容被大多数用户喜欢,那大概率其他用户也会喜欢。但是基于粗放的推荐往往会不够精确,想要挖掘用户个性化的,小众化的兴趣,需要制定复杂的规则运算逻辑,并由机器完成。召回:当用户以及内容量比较大的时候,往往先通过召回策略,将百万量级的内容先缩小到百量级。

丨汀、的博客 7590

POJ - 3069 Saruman's Army

题目链接 题目描述 直线上有N个点,点i的位置是点Xi,从这N个点中选择若干个,给他们加上标记。对于每一个点,其距离为R以内的区域里必须有带标记的点自己本身带标记的点,可以认为与其距离为0的地方有一个带标记的点。求被标记的点最少个数是多少。 限制条件 1 =< N <= 1000 0 =< R <= 1000 0 =< Xi <= 1000 Input 第一行:...

weixin_43588422的博客 352

ssm框架搭建

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

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

POJ 3069

要求数轴上任何一个点的R范围内都要存在一个以上被标记得点,求点的最少数量。 #include<stdio.h> #include<algorithm> using namespace std; int n,m,r; int x[1000];//每个点的位置 int main() { int ans=0; int i; int s,t; scanf("%d%d",&amp...

goto_1600的博客 230

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Saruman's Army(POJ3069)

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

小飞猪的博客 334

贪心算法例3

在一条直线上,有n个点,点的位置为Xi。从这n个点中选择若干个,给他们加上标记。对于每一个点,其距离为R以内的区域里必须有一个被标记的点(自己本身带有标记,认为与其距离为0的地方有个标记的点 )。在满足这个条件的情况下,希望能为尽可能少的的点添加标记。问至少要有多少点被加上标记。 例:N=6,R=10 ,1 7 15 20 30 50 则3个点被标记,即15 30 50 从最左边的开始考虑。对于这...

qq_45626896的博客 1803

poj3069(贪心)

题目题意:有n个点,给你一个R,要标记一些点,要求标记的点左右R距离内必须有被标记的点,且标记点数最小。求有多少点被标记。 题解:较为简单的贪心,直接枚举最左端点寻找R距离内的中心作为标记点然后再去找右端点,扫一遍就好了。 (小白上的题目,我的代码和小白代码都贴上。) 我的代码#include<cstdio> #include<algorithm> #include<cstring> usin

开心铁匠铺 309

POJ3069——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...

red_red_red的博客 367

POJ 3069 Saruman's Army (贪心)

题意 :这个题是说给你n个点,然后让你标记其中尽可能少的点,使得n个点都处于被标记点左右不超过R的区间内 分析 : #include<bits/stdc++.h> using namespace std; const int maxn = 1e3 + 10; int arr[maxn]; int main(void) { int n,...

weixin_30808253的博客 79

贪心类

直线上有N个点,点i的位置是Xi,从这N个点中选择若干个,给他们加上标记。对每一个点,其距离为R以内的区域里必须有一个带有标记的点(自身带有标记的点,可以认为与其距离为0的地方有一个带有标记的点)。在满足这个条件的情况下,希望能为尽可能少的点添加标记。求出至少要有多少点被加上标记?   解题思路: 首先可以想到 方案一:每次都选择中间的点加上标记向两边去 方案二:每次都选择最左边的点距离...

qq_41706331的博客 449

Saruman's Army

题目描述:          直线上有N个点,第i个点的位置是xi。从这N个点中选取若干个,给他们加上标记。对于每一个点,其距离R以内的区域必须存在带有标记的点。在满足条件的情况下,尽可能使得标记的点个数小。 解题思路:          从最左边开始考虑,距离R以内距离最远的点,开始标记。以后以此类推,从最左边范围内没有标记的点距离R范围以内最远的点进行标记。 代码: #include

AndyBear 787

POJ 3069 Saruman's Army

一道足足做了三天(当然其中还穿插着别的半成品555)的题。 Saruman's Army Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10006   Accepted: 5034 Description Saruman the Whit

szh_0808的博客 250

【数据结构与算法-搜索(BFS、DFS)系列典例题汇总】

【数据结构与算法-搜索(BFS、DFS)系列典例题汇总】典例1、岛屿数量(medium)典例2、词语阶梯(medium)典例3、词语阶梯2(hard)典例4、火柴棍摆正方形(medium)典例5、收集雨水(hard) 典例1、岛屿数量(medium) 题目描述: 思路: LeetCode提交OJ测试链接: OJ测试代码实现: 可本地运行测试的完整代码: 典例2、词语阶梯(medium) 题目描述: 思路: LeetCode提交OJ测试链接: OJ测试代码实现

是小武呀 1636

POJ3069(贪心+巧用优先队列)

题目传送门:http://poj.org/problem?id=3069 题目大意:一个直线上有N个点。点i的距离是Xi。从这些点中选取若干个加上标记。要求:对于每个点,与其距离为R的范围内必有做标记的点(包括自身)。求至少标记多少点才能满足要求。 题目意思就是让找最少的标记点数,很好理解,贪心嘛,由于最近正在看优先队列,突然感觉这题也能用优先队列做,就实践了一发,也过了; 话不多...

daubee5963的博客 291

Saruman's Army--POJ3069

《挑战程序设计竞赛第二版》

小菜鸟博客 234
上一篇: 将创建进程的API-posix_spawn封装成一个进程类
下一篇: 10 个用于收集硬件信息的 Linux 命令
readyao
博客等级 码龄11年 243粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值