zoj 3633 Alice's present 线段树

Simulink无线通信仿真:手把手教你配置SISO衰落信道(Rayleigh/Rician)并可视化结果 本文详细介绍了如何在Simulink中配置SISO衰落信道模型,包括Rayleigh和Rician两种经典衰落信道的建模技巧。通过实战演示和参数配置指南,帮助工程师和学生快速掌握无线通信仿真技术,提升仿真结果的真实性和可靠性。 阅读详情

链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3633

题意:给出一n个数的序列,然后又m个询问[x,y](下标),如果[x,y]内没有重复的数,就输出OK,否则输出从右至左第一个重复的数字

测试数据:

5
1 2 3 1 2
3
1 4
1 5
3 5
[1,4]间从右到左第一个重复的数字是1

[1,5]是2

[3,5]之间没有重复的数字,输出OK

这个题可以用STL的map直接做,也可以用线段树做,这里介绍线段树的做法

此题叶子节点只能保存下标,如果数值不离散化的话肯定存不下(太大了,<2^31-1)

先将n个数排序,从小到大,相同的数按下标从小到大

如果有连续的两个数是相等的,那么在树中以后一个数为下标的节点的值更新为一个数的下标,以此类推,同时向上

更新区间的最大值(因为需要输出最右的那个重复数字)

查询下标[x,y]的时候,如果结果t>=x那么表明有重复的值,否则没有。原理就是要保证这个重复出现的数字向前最近的一个相等的数字在下标[x,y]内


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAXN 500005
struct node
{
	int l,r;
	int s;
}t[MAXN*4];
struct ele
{
	int e;
	int idx;
}a[MAXN];
int b[MAXN];
int max(int a,int b)
{
	return a>b?a:b;
}
void construct(int l,int r,int p)
{
	t[p].l=l,t[p].r=r,t[p].s=0;
	if(l==r) return ;
	int m=(l+r)>>1;
	construct(l,m,p*2);
	construct(m+1,r,p*2+1);
}
void insert(int x,int p,int val)
{
	if(t[p].l==t[p].r)
	{
		t[p].s=val;
		return ;
	}
	int m=(t[p].l+t[p].r)>>1;
	if(x<=m) insert(x,p*2,val);
	else insert(x,p*2+1,val);
	t[p].s=max(t[p*2].s,t[p*2+1].s);
}
int query(int l,int r,int p)
{
	if(t[p].l==l&&t[p].r==r)
		return t[p].s;
	int m=(t[p].l+t[p].r)>>1;
	if(r<=m) return query(l,r,p*2);
	if(l>m) return query(l,r,p*2+1);
	else return max(query(l,m,p*2),query(m+1,r,p*2+1));
}
int cmp(const void *a,const void *b)
{
	if(((ele*)a)->e==((ele*)b)->e)
		return ((ele*)a)->idx-((ele*)b)->idx;
	return ((ele*)a)->e-((ele*)b)->e;
}
int main()
{
	int n,m,i,x,y;
	while(scanf("%d",&n)!=EOF)
	{
		construct(1,n,1);
		for(i=1;i<=n;i++) scanf("%d",&a[i].e),a[i].idx=i,b[i]=a[i].e;
		qsort(a+1,n,sizeof(ele),cmp);
		for(i=2;i<=n;i++)
			if(a[i].e==a[i-1].e)
				insert(a[i].idx,1,a[i-1].idx);
		scanf("%d",&m);
		while(m--)
		{
			scanf("%d%d",&x,&y);
			int t=query(x,y,1);
			if(t>=x) printf("%d\n",b[t]);
			else printf("OK\n");
		}
		printf("\n");
	}
	return 0;
}


3633快速接单3版X86V1.0 针对性很强,不懂3633意思勿下 有时会出现无法连接服务,重开一般就行 有什么需要改进的地方,多多建议哦,传达给您的上家就行 运行环境 需要.net 4支持。 怎么开始使用本软件 首先向上家购买注册码,注意 注册信息的QQ是3633网站的登录名,而且有绑定机器的哦~ 然后打开软件,如果有什么警告提示,直接继续或continue。 打开软件后,填入网站登录密码,设置预设方案,点击打开登录页,点击登录 点击任务中心,点击设置绑定。(自动开始功能已经关闭) 直接点击设置绑定,可以实现一键登录自动开始,但需先设置预设方案。 字体可以大点或小点吗? 鼠标点下页面,CTRL+滚动条,就可以放大缩小 可以自定义条件吗? 可以,单条件:非白号 仅白号 非秒单 仅秒单 非手机 仅手机 非福建 或非地区 非其它{地区名1,地区名2} 基5 基3 基6 三心 一心 四心 一钻 二钻 一冠 二冠 单链接 多链接 非实名 仅实名 加1 不加 不聊 要聊 组合条件:三心非白号非秒单 基5四心非手机非福建单链接 建议用基础佣金来限定,不要用非秒单来限定。 选择预设方案,如果没有就手输,输完,点设置条件,查看是否能正确设置 加QQ无反应 请将本软件添加为360或其它安全软件的信任软件。 该旺旺低于要求的最低信益 接手的单有时会超出设置的条件范围,绑定框点关闭,到已接任务里去查看,然后绑定。这种情况有时是小号前后多了空格引起的。 立即下载

相关推荐

【智能制造】- APS系列|05 APS 排产的五大底层算法逻辑

很多人误以为APS只是给生产工单排先后顺序,实则整套系统依托成熟算法体系,完成多维度约束下的最优生产决策在制造业数字化排产普及的当下,依旧有不少制造管理者对APS存在认知误区,将其等同于简易工单排序工具。事实上,专业级高级计划与排程系统,早已脱离单纯按时间排序的基础功能,而是依托一整套成熟完善的底层算法逻辑,整合现场各类生产限制条件,在海量变量中自动推演、筛选、输出最贴合企业经营目标的生产方案。

qq_40821260的博客 433

3773. 兔子跳

AcWing 3773. 兔子跳 题目: 一只兔子位于二维平面的原点 (0,0) 处,它想通过一系列的跳跃,跳到点 (x,0) 处。 给定一个长度为 n 的数组 a1,a2,…,an。 兔子能从一个点跳到另一个点,当且仅当两点之间的距离等于上述数组中的某个元素的值。 请问,兔子从 (0,0) 到 (x,0) 最少需要跳几次? 注意,兔子可以跳到非整数坐标的点上。 例如,当 x=4,a={1,3} 时,(0,0)→(1,0)→(4,0) 和 (0,0)→(2,5√)→(4,0) 均为合理最佳方案之一。 输入格

Hunter_Kevin的博客 3783

树莓派CSI/DSI二合一接口深度玩法:同时驱动MIPI摄像头和屏幕的配置秘籍

本文详细解析了树莓派5上CSI/DSI二合一接口的深度玩法,提供了同时驱动MIPI摄像头和屏幕的完整配置秘籍。从硬件连接到软件设置,包括config.txt的优化配置,帮助用户充分利用树莓派5的双多功能接口,实现高效的双设备工作模式。

weixin_30687051的博客 573

hdu 3633

http://acm.hdu.edu.cn/showproblem.php?pid=1000 枚举~ #include #include using namespace std; const int N=100005; char str[N]; int main() { int h,t,i,n,flag,num1,num2,count1,count2; while(scanf("%d",&

yduqytd的专栏 5395

PSINS惯性系初始对准与代码解读

本文参考“摇摆基座上基于信息的捷联惯导粗对准研究”(秦永元),以及“严恭敏博士后研究报告”,详细解读并推导了静基座惯性系对准算法,并与PSINS代码进行对照解读。

u011012050的博客 6752

密评实战:应用层数据安全防护全解析

本文从实战角度深度解析三级信息系统密评中应用层数据安全防护的核心要点。围绕身份鉴别、访问控制、数据传输与存储安全、不可否认性等关键环节,结合国密算法(SM2/SM3/SM4)与智能密码钥匙等合规技术,提供了从代码审查、日志分析到流量验证的全链路排查方法,助力构建真正符合密评标准的数据安全防线。

weixin_29291185的博客 460

zoj 3633 Alice's present

Alice's present Time Limit: 5 Seconds      Memory Limit: 65536 KB As a doll master, Alice owns a wide range of dolls, and each of them has a number tip on it's back, the tip can be treated as a

qqspeed 3048

量化策略分享之ST股弱转强,回测年化123%

本策略的核心是精选ST股票,国九条过滤,防止直接暴雷退市,只做ST股票的弱转强,弱转强的认定标准是前日涨停但昨日不涨停,昨日收盘价大于前一日最低价,昨日收盘价大于10日线,昨日成交量大于前一日的成交量但小于前一日成交量的10倍,股价大于1;这类股票强势,有资金介入,能获得超额收益。

qq_29301281的博客 1268

金蝶K3wise15.1职员表‘’增删改查‘’错误问题

近期在维护金蝶wish时,遇到职员表(t_emp)的保存操作时存在查询报错问题,具体报错代码段如下: 错误代码:3633(E31H) Source :Microsoft OLE DB Provider for SQL Server Detail :查询超时已过期 出现该代码后,假死调用中间层。而后制作单据时引用职员表内修改的用户显示:无权限或者不存在的。同时在使用SQL语句在t_Emp表中...

aptx689的博客 3035

〔重庆理工大学〕大学物理实验--液体表面张力系数的测定

每个老师要求不同,实验报告内容和数据仅供参考。

Pretty Boy Fox的博客 2801

华为OD机考双机位C卷 - 简单的解压缩算法 (Java & Python & JS & GO & C++ & C)

华为OD机考双机位C卷 - 简单的解压缩算法 , 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 129

POJ 3368 Frequent values 线段树

题意: 给你N个数,按照非减序列给出; 然后M个询问,每个询问一个区间,问在(a,b)之间最多相同数量数字的个数。 Sample Input 10 3 -1 -1 1 1 1 1 3 10 10 10 2 3 1 10 5 10 0 Sample Output 1 4 3 思路: 第一道线段树,以前只会树状数组,然后今天碰上这道题,就去学习了一下线段树。 发现其实树状

just_water 908

【GameFramework框架】二、GameFramework框架介绍

Game Framework框架是由E大(Ellan Jiang)开源的一款基于Unity的通用游戏框架。Game Framework框架提供了游戏开发中常用的框架基础模块,将基础模型进行了封装,在资源管理和资源更新方面比较完善,可以大大加大开发进程,加快开发速度,并且还在在此此处上保证产品质量。实在是代码开发、框架学习、编程进阶、居家旅行哦不对,是提升自己的最佳实践。Game Framework框架。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 5847

ZOJ 3633 Alice's present【线段树】

As a doll master, Alice owns a wide range of dolls, and each of them has a number tip on it's back, the tip can be treated as a positive integer. (the number can be repeated). One day, Alice hear...

dianxuanzhi1019的博客 154

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

zoj 3633 Alice's present(线段树)

首先预处理出每个位置上的数从它开始向右第一个

Baoli1008的专栏 748

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

[ZOJ 3633]Alice's present 离线分块/线段树

A - Alice's present Time Limit:5000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu As a doll master, Alice owns a wide range of dolls, and each of them has a number tip on it's b

一维空间 779

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ZOJ3633 Alice's present 线段树离线 || 主席树在线

题目大意 题目链接 给一个长度为N的序列,有M个询问,每次询问区间内的数是否全都不一样,如果全都不一样就输出OK,如果有重复的就输出从右到左第一个重复的数。 解题思路 主席树在线非常直观,每一个数对应一个历史版本,然后询问的时候询问那个区间对应的线段树里面有多少个元素,如果最大值是1就表示OK,否则的话就输出最右的非1,对于位置做做处理就行。 线段树离线就不太好办了,由于我前几天刚做完杭

浅雨歌 766

zoj-3633 Alice's present 离线线段树

给一列数,每次查询一个区间,求出这个区间中,从右到左第一个出现两次的数。        首先预处理一下每个数左边离他最近的相同的数的位置,读完数据后,按查询的右区间递增排 个序,然后一个一个添加。添加到a[i]时,若l[i]不为0,那么对于右区间为i,左区间为1...l[i]的查询,答案就是i,这里可以用线段树成段赋值处理,要注意的一点是,每次记录一下上一次添加时的l[i]为last,如果本次

Broken Wings 824

ZOJ 3633 Alice's present 线段树+RMQ

题意: 给出一个序列和 M 个询问,对于每个询问输出询问区间内从右向左第一个出现次数超过 2 的数。 分析:预处理用 before[i] 表示第 i 个数之前出现的距离第 i 个数最近求和 第 i 数相等的数的值。 区间查询的时候先查询右儿子区间,再查询能合并的区间,再查询左儿子区间。 #include<stdio.h> #include<strin...

weixin_34186931的博客 125

zoj 3633 Alice's present(离线+线段树)

题意:给出区间[L,R],从右向左检查,找到第一个重复的值。 思路:首先把每个值离散化,将查询按R排序保存。依次把1~n中的数x插入线段树,令v=num[i],用pre[v]表示上一次出现的v这个值的位置,用last[v]表示再上一次出现的位置。把last[v]赋值为0,pre[v]的值赋值为1,pre[v]=x。这样,对于每个以i为右端点的查询,第一个重复的就是这个区间中最右边的1的位置,这个

绝望的乐园 660

ZOJ-3633-Alice's present

ZOJ-3633-Alice's present http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3633 给定一个序列,每次询问一个区间内,从右往左看,第一个重复的 线段树,这题做了好长时间,感谢cxlove牛 用一个数组标记和当前数字相等的最右边的数字的位置,若没有则记为-1,比如1 2 3 1 2 3这段数对应

菜鸟的程序人生 1388

ZOJ 3633 Alice's present (脑洞题)

题意: N<=5×105的序列,Q<=5×104,每次查询[l,r]从右往左第一个重复元素,没有输出OKN<=5×10^5的序列, Q <= 5×10^4,每次查询[l,r]从右往左第一个重复元素, 没有输出OK 分析: 找出每个数最近一次出现的位置记为l[i],没出现l[i]=0找出每个数最近一次出现的位置记为l[i],没出现l[i] = 0 如1,3,3,2,4,4  l数组就是

TaoSama's Microcosm 549

zoj 3633 - Alice's present(暴力?set)

L -Alice's present Time Limit:5000MSMemory Limit:65536KB64bit IO Format:%lld & %llu SubmitStatus Description As a doll master, Alice owns a wide range of dolls, and ...

weixin_30915275的博客 145
上一篇: hdu 4521 小明系列问题——小明序列
下一篇: hdu 3333 Turing Tree 线段树
yjCola
博客等级 码龄14年 4粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值