Jzoj5234 外星人的路径

VMware虚拟机安装CentOS 7:从零搭建Linux开发测试环境 虚拟化技术通过在单一物理硬件上创建多个隔离的虚拟环境,实现了资源的高效利用和环境的快速部署。其核心原理是利用虚拟机监控器(Hypervisor)抽象硬件资源,为每个虚拟机分配独立的计算、存储和网络资源。这项技术的价值在于为开发者和运维人员提供了安全、可复现且与生产环境一致的沙箱环境,极大提升了软件测试、系统学习和应用部署的效率。在众多应用场景中,使用VMware Workstation Player搭配CentOS 7的组合尤为常见,它结合了业界领先的稳定虚拟化平台与企业级Linux发行版的可靠性,是初学者 阅读详情
有一个外星人控制了你的大脑。一开始你处于原点(0,0)。外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左)。

平面上有N 个关键点,每当外星人给出一个操作,你需要在这个方向上找到最近的一个关键点,并走到那个点上。保证输入数据合法。

100%的数据,N,M≤100000,xi,yi≤200000。

这样,我们搞2个权值线段树,一个存横坐标一个存纵坐标,每次查询当前坐标的前继或者后续即可

复杂度O(mlgn)

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define M 200010
#define ls s[x].l
#define rs s[x].r
using namespace std;
struct nod{ int l,r,s; };
struct Tree{
	nod s[3000000];
	int rt[M<<1],c;
	Tree(){ 
		c=0; s[0]=(nod){0,0,0};
		memset(rt,0,sizeof rt);
	}
	inline int newnode(){ return ++c; }
	void ps(int x){ s[x].s=s[ls].s+s[rs].s; }
	void insert(int l,int r,int& x,int p){
		if(!x) x=newnode();
		if(l==r){ s[x].s=1; return; }
		int m=l+r>>1;
		if(p<=m) insert(l,m,ls,p);
		  else insert(m+1,r,rs,p);
		ps(x);
	}
	int getmax(int l,int r,int x){
		for(int m;l<r;){
			m=l+r>>1;
			if(s[rs].s) { l=m+1; x=rs; }
			else { r=m; x=ls; }
		}
		return l;
	}
	int getmin(int l,int r,int x){
		for(int m;l<r;){
			m=l+r>>1;
			if(s[ls].s) { r=m; x=ls; }
			else { l=m+1; x=rs; }
		}
		return l;
	}
	int getpre(int l,int r,int x,int p){
		if(l==r) return p;
		int m=l+r>>1,v;
		if(p<=m) return getpre(l,m,ls,p);
		else v=getpre(m+1,r,rs,p);
		if(v!=p||!s[ls].s) return v;
		else return getmax(l,m,ls);
	}
	int getsuc(int l,int r,int x,int p){
		if(l==r) return p;
		int m=l+r>>1,v;
		if(p>m) return getsuc(m+1,r,rs,p);
		else v=getsuc(l,m,ls,p);
		if(v!=p||!s[rs].s) return v;
		else return getmin(m+1,r,rs);
	}
	void insert(int x,int y){ insert(1,M<<1,rt[x],y); }
	int pre(int x,int y){ return getpre(1,M<<1,rt[x],y); }
	int suc(int x,int y){ return getsuc(1,M<<1,rt[x],y); }
} rot,lin;
int n,m,x,y; char s[100010];
int main(){
	freopen("tratincice.in","r",stdin);
	freopen("tratincice.out","w",stdout);
	scanf("%d%d",&n,&m);
	rot.insert(M,M);
	lin.insert(M,M);
	for(int i=0;i<n;++i){
		scanf("%d%d",&x,&y);
		x+=M; y+=M;
		rot.insert(x,y);
		lin.insert(y,x);
	}
	x=y=M; scanf("%s",s);
	for(int i=0;i<m;++i){
		if(s[i]=='U') y=rot.suc(x,y);
		if(s[i]=='D') y=rot.pre(x,y);
		if(s[i]=='L') x=lin.pre(y,x);
		if(s[i]=='R') x=lin.suc(y,x);
	}
	printf("%d %d\n",x-M,y-M);
}

从稀疏表示到低秩表示(一) 确定研究方向后一直在狂补理论,最近看了一些文章,有了些想法,顺便也总结了representation系列的文章,由于我刚接触,可能会有些不足,愿大家共同指正。 从稀疏表示到低秩表示系列文章包括如下内容: 一、 sparse representation 二、 一、 sparse representation 1  sparsity  一个线性表示解决的问题如下图所示: 阅读详情

相关推荐

superpowers-中文使用说明

《obra/superpowers:AI辅助开发的流程纪律工具集》 摘要:obra/superpowers是一套面向AI辅助软件开发的系统化流程规范,包含14个核心技能,强调"先理解后行动"的纪律性开发方法。该工具集定义了从头脑风暴到代码评审的完整工作流,要求严格遵循测试驱动开发、子代理隔离执行等原则。核心特色包括:1) 任何实现前必须完成设计和评审;2) 采用红-绿-重构的TDD循环;3) 复杂任务通过独立子代理串行处理;4) 所有产出需经过双重验证(规格合规+代码质量)。该工具集特别注重文档化和可验证性

qq_22786633的博客 765

【JZOJ5234】外星人的路径

Description有一个外星人控制了你的大脑。一开始你处于原点(0,0)。外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左)。 平面上有N 个关键点,每当外星人给出一个操作,你需要在这个方向上找到最近的一个关键点,并走到那个点上。保证输入数据合法。 上图为第三个样例的图示。Input第一行两个整数N,M。 接下来N 行,每行两个整数xi,yi,代表第

路人黑的纸巾 719

【逆向实战】Unity游戏资源提取与解密全攻略:从AssetBundle到libil2cpp.so的破解技巧

本文详细介绍了Unity游戏资源提取与解密的完整流程,涵盖从AssetBundle到libil2cpp.so的破解技巧。通过AssetStudio和Il2CppDumper等工具,读者可以学习如何提取未加密资源、处理加密文件,并掌握动态dump技术。文章还提供了自动化脚本编写和常见问题解决方案,帮助逆向工程爱好者高效完成资源提取任务。

weixin_29012765的博客 1046

JZOJ 5234. 【NOIP2017模拟8.7A组】外星人的路径

JZOJ 5234. 【NOIP2017模拟8.7A组】外星人的路径 有一个外星人控制了你的大脑。一开始你处于原点(0,0)。外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左)。 平面上有N 个关键点,每当外星人给出一个操作,你需要在这个方向上找到最近的一个关键点,并走到那个点上。保证输入数据合法。上图为第三个样例的图示。Input第一行两个整数N,M。

Felix-Lee的博客 437

【论文复现】Applied Intelligence 2025:Auto-PU正例无标签学习的自动化实现与GPT-5.4辅助编程实战

正例-无标签学习(Positive-Unlabelled Learning, PU Learning)是机器学习领域处理"只有正例标签,负例完全未知"场景的重要技术。本文基于2025年发表于Applied Intelligence的最新研究成果,详细阐述如何从零复现Auto-PU框架(包含GA-Auto-PU、BO-Auto-PU、EBO-Auto-PU三种优化器)。

nmdbbzcl的博客 1388

ResNet改进(7):添加 SK注意力机制

实现 SK 注意力机制。

2401_82355416的博客 730

jzoj5234. 【NOIP2017模拟8.7A组】外星人的路径

Description有一个外星人控制了你的大脑。一开始你处于原点(0,0)。外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左)。 平面上有N 个关键点,每当外星人给出一个操作,你需要在这个方向上找到最近的一个关键点,并走到那个点上。保证输入数据合法。 上图为第三个样例的图示。Input第一行两个整数N,M。 接下来N 行,每行两个整数xi,yi,代表第

puppywolf的博客 379

Tmux学习总结

Tmux 重要概念 使用 Tmux 的时候千万不要去背指令,所有的指令都可以在 .tmux.conf 配置文件中绑定自己顺手的快捷键,也可以配置开启鼠标。 这个是我的配置文件:https://github.com/zuorn/tmux.conf 在Tmux逻辑中,需要分清楚Server > Session > Window > Pane这个大小和层级顺序是极其重要的,直接关系到工作效率: Server:是整个tmux的后台服务。有时候更改配置不生效,就要使用tmux kill-

满目星辰 573

JZOJ.5234【NOIP2017模拟8.7】外星人的路径

Description 有一个外星人控制了你的大脑。一开始你处于原点(0,0)。外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左)。平面上有N 个关键点,每当外星人给出一个操作,你需要在这个方向上找到最近的一个关键点,并走到那个点上。保证输入数据合法。上图为第三个样例的图示。 Input 第一行两个整数N,M。接...

dawzski22234的博客 179

FPGA实现DDR接口

verilog// DDR2控制器状态机// 初始化序列// 发出初始化命令endendendend// 自动预充电end// 其他状态...endcaseendend。

whm128的博客 998

UG NX二次开发基础篇-外部模式与DLL内部模式(二 DLL内部模式)

通常情况下,我们希望我们的外挂,在UG启动的时候,就自动加载我们的外挂,并以菜单和工具条的方式,显示在UG上面。当然,这也是市面上所有外挂的操作,因为您不可能要求你的用户,以手工加载的方式,去调用你的外挂吧。在上一篇中,有粉丝留言说,启动 bat 文件,启动EXE外挂,会提示无法找到DLL的错误,这是因为UG的环境变量设置有问题,这里,我们把BAT文件作一个修改,直接改为实际目录。EXE外部模式,还有很多部分需要添加的,如参数的传递、输出消息的显示、UG操作的消息显示,等等。Dll执行结束后,会调用。

u014657217的博客 1653

外星人的路径

5234. 【NOIP2017模拟8.7A组】外星人的路径,用到了二分

欢迎您的光顾awa 188

计算机组成原理(第三版)唐朔飞-第十章控制单元的设计-课后习题

计算机组成原理(第三版)唐朔飞-第十章控制单元的设计-课后习题

weixin_45735391的博客 3万+

一些基础算法的模板(持续更新)

更新中 //Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft //To be continued... //Suffix Automation char str[N]; int s[N][26],mx[N],f[N],sz[N]; int last=1,cnt=1,n,v[N],r[N],ans=0; inlin

扩展の灰(Extended Ash/Cooevjnz) 3865

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Jzoj3467 最长上升子序列

维护一个序列,使它可以进行下面两种操作: 1.在末尾添加一个数字x 2.将整个序列变成第x次操作后的样子 在每次操作后,输出当前序列的最长上升子序列的长度 序列初始时为空 嗯,可持久化线段树的裸题 额这可是noip提高组难度的题,我们发现所有操作可以变成一棵树(离线做法老套路了) 让后每次最多修改数组上的一个值(考虑二分求LIS的过程)最后改回去就好了 注意dfs又卡栈(jzo

扩展の灰(Extended Ash/Cooevjnz) 3022

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Jzoj4877 力场护盾(红警系列)

ZMiG成功粉碎了707的基因突变计划,为了人类的安全,他决定向707的科学实验室发起进攻!707并没有想到有人敢攻击她的实验室,一时间不知所措,决定牺牲电力来换取自己实验室的平安。     在实验室周围瞬间产生了一个无限大的力场护盾,它看上去无懈可击!不过ZMiG拥有惊人的双向观察能力,经过他的反复观察,找到了这个护盾的N个弱点,他本想逐一击破,却发现一股神秘力量阻止了他的行为。原来他身处力场

扩展の灰(Extended Ash/Cooevjnz) 1169

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

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

Jzoj5462【NOIP2017提高A组冲刺11.8】证书

Pulumi生活在P城的角落,而他的朋友们gjdy,oyski,tutuwai等等生活在P城的靠中心位置。 P城很大,但它拥有优秀的城市结构,同时P城重视文化教育的发展,P城共有n个学校,校与校之间共建立了n-1条交通线路,且两所学校之间存在唯一的连通路径。 P城常常举行各种类型的评比活动,为了节约资金,最终将给某一条路径上的所有学校颁发证书。为了便于描述我们记一次评比活动的结果为(ui,vi

扩展の灰(Extended Ash/Cooevjnz) 1057

CDQ分治&整体二分九连测

整体二分好难a CDQ分治&amp;amp;amp;amp;整体二分九连: A[适者] 先来一个不是cdq分治的题(虽然也可以用分治做) 首先先来考虑按照什么顺序来搞掉这些机甲 对于两个相邻的机甲i,j,先i后j的代价是Ai∗Di+(Di+Dj)∗AjAi∗Di+(Di+Dj)∗AjA_i*D_i+(D_i+D_j)*A_j 那么如果i应该比j先消灭就有 Ai∗Di+(Di+Dj)∗Aj&amp;amp;amp;lt;A...

扩展の灰(Extended Ash/Cooevjnz) 757

Jzoj4727 挺进

题意:给你一颗树,要求断掉一条边,使得剩下两个联通快的直径之和最大 一看就是树形DP嘛,c1表示最长边c2次长,f表示父亲部分的最长路 上面做法不讲,我们讲一种比较新奇的方法 假设我们枚举断哪一条边,在lgn时间内求出两个联通快的直径不就行了嘛 怎么做呢,我们发现,可以用树的dfs序来维护,我们用一个线段树维护一个区间内的直径的端点和长度 额,如何合并? 我们假设两块的直径端点分别为x

扩展の灰(Extended Ash/Cooevjnz) 756

Jzoj1020 逆序对统计 ≈ Bzoj3295 动态逆序对

Jzoj1020: Dramatic是在太菜了。最近,他学习了有关逆序对的知识,并且掌握了计算一个序列逆序对个数的高效算法,因此,他兴冲冲的跑去向YY牛炫耀。YY牛对此不屑一顾,并打击Dramatic说:“这是在太小儿科了!”Dramatic很不甘心,于是在他的强烈要求下,YY牛给他出了一道跟逆序对有关的“难题”(显然,对于YY牛来说是简单题)。题目是这样的:YY牛首先给Dramatic一个长

扩展の灰(Extended Ash/Cooevjnz) 718

Jzoj5236 利普希茨

对于一个整数序列A,我们定义f(A)=max{floor(|Ai-Aj|/(j-i))},这里i 给出一个长度为n的序列A,有q此操作 1.修改一个元素的值 2.询问A的一段区间[l,r]组成的序列的f(A[l..r]) 这里有一个很显然的结论,那就是使得f取到最大的i,j一定满足j=i+1 为什么?可以证明一下,以下证明来自jefflyy:函数 " 用归纳法,若(长度为2⋯

扩展の灰(Extended Ash/Cooevjnz) 702

Jzoj5456【NOIP2017提高A组冲刺11.6】奇怪的队列

nodgd的粉丝太多了,每天都会有很多人排队要签名。 今天有n个人排队,每个人的身高都是一个整数,且互不相同。很不巧,nodgd今天去忙别的事情去了,就只好让这些粉丝们明天再来。同时nodgd提出了一个要求,每个人都要记住自己前面与多少个比自己高的人,以便于明天恢复到今天的顺序。 但是,粉丝们或多或少都是有些失望的,失望使她们晕头转向、神魂颠倒,已经分不清楚哪一边是“前面”了,于是她们可能是记

扩展の灰(Extended Ash/Cooevjnz) 586

Jzoj4604 树

子树的问题都是dfs序的工作啦,加上个线段树就ok了 #include #define mid (l+r>>1) struct Edge{ int v,nt; } G[200010]; int h[100010],cnt=0,clk=0,l[100010],r[100010]; int s[400040],n,m,d[100010]; char c[5]; void adj(int x,in

扩展の灰(Extended Ash/Cooevjnz) 500
上一篇: Jzoj5231 序列问题
下一篇: Jzoj5235 好的排列
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值