Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot 【二分 + 尺取】

CrewAI 多 Agent 实战包 v1(Mock免Key跑通+通义千问可选+流水线样例) 本资源是 CrewAI 风格多 Agent 可运行工程包:研究→写作→审校等流水线样例。无 API Key 时自动降级 Mock 引擎跑通;有 DASHSCOPE_API_KEY 时可接真实 CrewAI + 通义千问。含中文 README、samples、smoke 留档、单元测试。本包不含密钥。关联博客:https://blog.csdn.net/mtl1994 立即下载

任意门:http://codeforces.com/contest/1073/problem/C

C. Vasya and Robot

time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Vasya has got a robot which is situated on an infinite Cartesian plane, initially in the cell (0,0)(0,0). Robot can perform the following four kinds of operations:

  • U — move from (x,y) to (x,y+1)
  • D — move from (x,y)to (x,y−1)
  • L — move from (x,y)to (x−1,y)
  • R — move from (x,y) to (x+1,y)

Vasya also has got a sequence of nn operations. Vasya wants to modify this sequence so after performing it the robot will end up in (x,y)(x,y).

Vasya wants to change the sequence so the length of changed subsegment is minimum possible. This length can be calculated as follows: maxID−minID+1maxID−minID+1, where maxIDmaxID is the maximum index of a changed operation, and minIDminID is the minimum index of a changed operation. For example, if Vasya changes RRRRRRR to RLRRLRL, then the operations with indices 22, 55 and 77 are changed, so the length of changed subsegment is 7−2+1=67−2+1=6. Another example: if Vasya changes DDDD to DDRD, then the length of changed subsegment is 11.

If there are no changes, then the length of changed subsegment is 00. Changing an operation means replacing it with some operation (possibly the same); Vasya can't insert new operations into the sequence or remove them.

Help Vasya! Tell him the minimum length of subsegment that he needs to change so that the robot will go from (0,0)(0,0) to (x,y)(x,y), or tell him that it's impossible.

Input

The first line contains one integer number n (1≤n≤2⋅105)n (1≤n≤2⋅105) — the number of operations.

The second line contains the sequence of operations — a string of nn characters. Each character is either U, D, L or R.

The third line contains two integers x,y (−109≤x,y≤109)x,y (−109≤x,y≤109) — the coordinates of the cell where the robot should end its path.

Output

Print one integer — the minimum possible length of subsegment that can be changed so the resulting sequence of operations moves the robot from (0,0)(0,0) to (x,y)(x,y). If this change is impossible, print −1−1.

Examples
input
Copy
5
RURUU
-2 3
output
Copy
3
input
Copy
4
RULR
1 1
output
Copy
0
input
Copy
3
UUU
100 100
output
Copy
-1
Note

In the first example the sequence can be changed to LULUU. So the length of the changed subsegment is 3−1+1=33−1+1=3.

In the second example the given sequence already leads the robot to (x,y)(x,y), so the length of the changed subsegment is 00.

In the third example the robot can't end his path in the cell (x,y)(x,y).

 

题意概括:

输入N个操作,询问修操作是否能到达终点,如果能到达终点输出“修改的区间”;

修改区间的定义:修改的最大坐标操作的坐标 - 修改的最小坐标操作的坐标

【规定起点为 (0,0),输入终点( x, y );】

操作(上下左右):

    • U — move from (x,y) to (x,y+1)
    • D — move from (x,y)to (x,y−1)
    • L — move from (x,y)to (x−1,y)
    • R — move from (x,y) to (x+1,y)

解题思路:二分 || 尺取

预处理路径前缀和(压缩路径)sum_x [ ],sum_y[ ] ;则sum_x[ N ] , sum_y[ N ] 为实际的终点;

输入的终点为 (ex, ey),假设能修改若干个操作到达输入的终点,那么:

某一段 [ st, ed ] 所走的影响为:

              X轴方向:xx = ex - ( sum_x[ N ] - sum_x[ ed -1 ] + sum_x[ st - 1 ] )

              Y轴方向:yy = ey - ( sum_y[ N ] - sum_y[ ed - 1 ] + sum_y[ st - 1 ] )

二分

二分修改区间长度 len ,尺取判断在该长度是否满足修改条件;

 

①操作所走最大范围不得超过 len ,因为每次操作只是上下左右移动一步

②判断能否完成假设的影响  len - abs(xx) - abs(yy))%2 ?= 0;

 abs(xx)表示的是 x 方向 到达终点 ex 的差值

 abs(yy)表示的是 y 方向 到达终点 ey 的差值

 假如 len > abs(xx)+abs(yy) 说明这段区间有操作是多余的,但是只要剩下的操作数是偶数就可以两两抵消。

 

尺取:

直接定义一个头指针一个尾指针,暴力一遍,条件判断是要头指针加还是尾指针加,记录最小修改区间。

 

AC code:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int N=1e6+6;
 4 int x[N],y[N];
 5 int sx,sy,n;
 6 char s[N];
 7 bool check(int m)
 8 {
 9     for(int i=1;i<=n-m+1;i++)
10     {
11         int tx=x[n]-x[i+m-1]+x[i-1];  //当前原来选项造成的横坐标影响
12         int ty=y[n]-y[i+m-1]+y[i-1];  //当前原来选项造成的纵坐标影响
13         int ex=sx-tx, ey=sy-ty;        //消除当前影响
14         printf("%d %d m: %d\n",ex,ey,m);
15         if(m>=(abs(ex)+abs(ey)) && (m-abs(ex)-abs(ey))%2==0) //可以构造
16             return 1;
17     }
18     return 0;
19 }
20 int main()
21 {
22     //string s;
23     while(~scanf("%d",&n))
24     {
25         scanf("%s",s+1);
26         x[0]=y[0]=0;
27         for(int i=1;i<=n;i++)
28         {
29             x[i]=x[i-1];y[i]=y[i-1];  //累积前面步数的结果
30 
31             if(s[i]=='L') x[i]-=1;    //当前步数造成的影响
32             else if(s[i]=='R') x[i]+=1;
33             else if(s[i]=='D') y[i]-=1;
34             else y[i]+=1;
35         }
36        // printf("%d %d\n",x[n],y[n]);
37         scanf("%d %d",&sx,&sy);       //终点
38        // printf("HH");
39         int l=0,r=n,ans=-1;
40         while(l<=r)                   //二分答案
41         {
42             printf("l:%d r:%d\n", l, r);
43             int mid=(l+r)>>1;
44             if(check(mid)) ans=mid,r=mid-1;
45             else l=mid+1;
46         }
47         printf("%d\n",ans);
48     }
49 }
View Code

 

市场销售总监年终汇报必备PPT.pptx 市场销售总监年终汇报必备PPT 立即下载

相关推荐

半桥LLC谐振变换器开环+闭环仿真设计资料(Simulink仿真实现)

内容概要:本文档系统性地介绍了半桥LLC谐振变换器的开环与闭环仿真设计方法,基于Simulink平台构建完整的仿真模型,涵盖系统建模、关键参数设计、控制策略实现及动态性能验证全过程。重点阐述了LLC谐振变换器的工作原理、谐振腔参数(Lr、Cr、Lm)的优化设计方法、零电压开关(ZVS)与零电流开关(ZCS)等软开关技术的实现机制,并深入探讨电压/电流双闭环控制策略,特别是恒压恒流双竞争控制逻辑的切换机制与稳定性保障。资料配套提供完整的仿真模型、详细说明文档及参考文献,有助于全面掌握其在启停过程、负载突变等工况下的动态响应特性与系统鲁棒性调控方法。; 适合人群:具备电力电子技术基础理论知识和Simulink仿真操作能力的高校研究生、科研机构研究人员,以及从事高频高效开关电源、新能源汽车车载充电机(OBC)、充电桩电源、数据中心供电等领域的工程技术人员。; 使用场景及目标:① 掌握LLC谐振变换器在实际工程中的精确建模与仿真分析流程;② 深入理解并独立实现从开环频率调制到闭环反馈控制的平滑切换逻辑;③ 应用于高效率DC-DC变换器、电动汽车充电系统、可再生能源并网电源等场景下的控制系统设计与性能优化; 阅读建议:建议结合所提供的仿真模型进行分步调试与参数扫描实验,重点关注控制器带宽设计、谐振元件参数匹配对效率的影响以及系统上电过程中的软启动策略设计,同时推荐对比学习全桥LLC、CLLC等衍生拓扑的相关资料,以建立完整的谐振变换器控制体系认知。

Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot(二分或者尺取)

题目哦 题意:给出一个序列,序列有四个字母组成,U:y+1,D:y-1 , L:x-1 , R:x+1; 这是规则 。 给出(x,y) 问可不可以经过最小的变化这个序列可以由(0,0) 变到(x,y) 注意!!!!是可以变任意序列的!不是只有y变y , x变x ,比赛看错题意导致没A , 分析:这需要借助前置和与后缀和 , 这样的话我就可以知道[L , R] 这个区间需要变化什么...

weixin_30265171的博客 138

基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理

基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理

watch361的博客 1万+

【Educational Codeforces Round 53 (Rated for Div. 2) C】Vasya and Robot

【链接】 我是链接,点我呀:) 【题意】 【题解】 如果|x|+|y|>n 显然。从(0,0)根本就没法到(x,y) 但|x|+|y|<=n还不一定就能到达(x,y) 注意到,你每走一步路 |x|+|y|的奇偶性会发改变奇变偶,偶变奇。 因此,如果|x|+|y|的奇偶性和n不一样的话。 显然也是没法走到(x,y)的 可以这么理解,先走|x|+|y|步到达(x,...

145

AD21导出gerber文件

文件–>制造输出–>Gerber Files 文件–>制造输出–>Gerber Files 通用、光圈和高级跟第一步一样 3.文件–>制造输出–>NC Drill Files 这个默认就可以了 主要参考视频来自bilibili添加链接描述 此篇博客主要是写给自己好记的,无其他商业用途 ...

新手小杨 1万+

详解机器人标定

这里是机器人在取料之前,先把自己的角度补正到与 物料当前角度一致,到(X’,Y’)位置处,然后移动 CDx,Cdy,与物料位置也重合,然后去取料。可以使用实物标定,机器人抓住工件摆放9个位置,得到9个机械坐标,相机也得到9个像素坐标,(机器人每次需要回到固定位置拍照),然后标定。(X0,Y0)为旋转中心, (X1,Y1)及(X2,Y2)为工件在视野中旋转角度a的前后坐标,(Xt,Yt)为两点连线的延长。(rx0, ry0)为旋转中心,( x, y)为被旋转的点,(x0,y0)旋转后的点。

weixin_56819992的博客 7630

(二分)Educational Codeforces Round 53 (Rated for Div. 2) C - Vasya and Robot

思路:这题二分长度就好了,可惜我一开始看成了只能上下或左右互换,就写炸了 做法:前缀和纪录向上和向右贡献,然后二分长度,对于长度len,枚举起点,假设起点i,终点j,j-i+1=len,那去掉区间[i,j]后计算走到了(x1,y1),然后s=abs(x1-x)+abs(y1-y)就是要修改的路程,那只要s<=len且(s-len)%2==0就可以修改完成,(s-len)%2==0的话,说明多余的字符可以来回走消耗掉 Vasya has got a robot which is situate..

天涯沧海的博客 178

大模型推理中Prefill与Decode、KV Cache三者说明

Prefill 阶段对输入 Prompt 并行编码,一次性构建KV Cache,属于计算密集型任务。Decode 阶段逐 token 迭代生成,复用KV Cache避免重复计算,属于显存带宽密集型任务。KV Cache是自回归推理的核心基石,用显存换时间,实现两阶段衔接与高效生成。PD 分离通过任务解耦、异构硬件、异步调度、独立批处理,解决传统一体化推理的资源冲突与利用率低下问题,是当前云端大模型推理服务的主流工程优化方向。

a486259的博客 1485

Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot

题意:给出一段操作序列 和目的地 问修改(只可以更改 不可以删除或添加)该序列使得最后到达终点时 所进行的修改代价最小是多少 其中代价的定义是 终点序号-起点序号-1 思路:因为代价是终点序号减去起点序号 所以 在终点和起点之前 可以任意变换 则如果 x+y 和序列长度n的奇偶性相同 就一定可以到达 可以使用二分(二分好容易写炸啊!) 把(以1为起点) 【1,i】U...

azmkinbug41973327的博客 139

2026 企查查/天眼查:IP频率限制 + 验证码策略,企业工商数据采集实战

企业工商数据采集技术解析与解决方案 本文深度剖析了2026年企查查和天眼查平台的反爬机制与技术对抗方案。主要内容包括: 反爬机制分析: 采用JA4+ TLS指纹识别、极验v6验证码等多层防护 IP限制策略严格区分未登录/普通/VIP账号 精准识别并封禁数据中心IP 核心解决方案: 构建高可用住宅代理池,动态轮换真实用户IP 基于YOLOv8的验证码缺口识别技术(准确率99%) 分布式架构设计,支持千万级数据采集 多账号池管理与行为模拟技术 技术亮点: 动态住宅IP池实现1%以下封禁率 Playwright浏

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1326

第54节:vue3+cesiumjs

对之前的vue2+cesiumjs 进行了升级

qq_29384639的博客 62

Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot(二分+模拟)

题意 一个二维平面上有个机器人初始在(0,0)(0,0)(0,0),它可以上下左右移动,现在给出一串长度nnn且只包含L(左),R(右),U(上),D(下)L(左),R(右),U(上),D(下)L(左),R(右),U(上),D(下)的命令串,我们可以任意修改其中任何一个命令,但需要修改的命令的最左位置和最右位置距离最小。例如 LRLUULRLUULRLUU 修改为URURRURURRURURR修改...

Link_Ray的博客 289

Allegro如何用自带的功能将线段变成铜皮操作指导

在做PCB设计的时候,有时根据设计需要将线段变成铜皮,可以借助辅助工具来实现这一操作,但是Allegro自身也自带这个功能,如下图。勾选Delete original objects。如何用自带的功能将线段变成铜皮操作指导。勾选Convert to shape,需要把这段走线变成铜皮。

weixin_54787054的博客 2946

Educational Codeforces Round 53 (Rated for Div. 2)题解

Educational Codeforces Round 53 (Rated for Div. 2A. Diverse Substring ) A. Diverse Substring 题目大意:定义长度为n的字符串是一个多样化的字符串:当且仅当这个字符串没有一种字符数目严格大于n/2 找出字符串s的一个多样化子串 |s|&amp;amp;amp;amp;amp;amp;amp;lt;=1000 分析:可以直接预处理前缀和数组,暴力O(∣s∣2σ)O(...

STcyclone的博客 1345

Unreal5从入门到精通之如何实现移动端触屏滑动手势

随着移动设备的普及,越来越多的游戏和应用选择在移动平台上发布。Unreal Engine 5(UE5)作为一款强大的游戏引擎,提供了丰富的工具和功能,帮助开发者打造出色的移动体验。UE5不仅提升了图形质量,还大幅简化了开发流程,使得开发者能够更专注于游戏设计和用户体验。在移动游戏中,触屏滑动手势是用户与应用互动的主要方式之一。然而,许多开发者在实现这些功能时常常遇到困难。为了填补这一知识空白,本篇文章将详细介绍如何在UE5中实现移动端触屏滑动手势,帮助你从入门到精通,提升你的开发技能。

TxNet 1136

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Educational Codeforces Round 53 (Rated for Div. 2)-C. Vasya and Robot】二分

Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot 题意 在二维平面上有一个机器人最开始在点(0,0)处在二维平面上有一个机器人最开始在点(0,0)处在二维平面上有一个机器人最开始在点(0,0)处 最终他要走到点(x,y)处,现在给出行动路线,有(L,R,U,D)四种走法最终他要走到点(x,y)处,现在给出行动...

lajiyuan的博客 178

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot 二分+前后缀预处理

题意: 给定长度为n的字符串,每个字符表示朝上下左右四个方向前进,给定一个目标位置,找一个最小的区间,使得改变这个区间的若干个字符,使得整个串的操作能到达目标位置只需要输出最小区间长度 思路: 首先暴力的想法就是枚举所有的区间,这样这个区间两边就会有一些操作不会改变,然后我们根据这些操作得到一个位置,跟目标位置比较,看看我们能否通过设置这个区间达到目标位置,显然复杂度很高; 然后就可以想到...

床前明月光 347

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

jre9下载 jdk9

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

Educational Codeforces Round 53 (Rated for Div. 2)

Educational Codeforces Round 53 (Rated for Div. 2) 1 #include<bits/stdc++.h> 2 #include<iostream> 3 #include<cstdio> 4 #include<cstdlib> 5 #include<cstring>...

weixin_30457465的博客 68

Educational Codeforces Round 53 (Rated for Div. 2) (前五题题解)

这场比赛没有打,后来补了一下,第五题数位dp好不容易才搞出来(我太菜啊)。 比赛传送门:http://codeforces.com/contest/1073 A. Diverse Substring 题意:给你个字符串,让你找一个子串满足任意一个字符的个数不超过其他字符的总和,输出yes或no表示否存在,如果存在输出任意一个。 这题只要找两个不同的相邻字符,因为两个字符各一个都...

weixin_30644369的博客 141

Educational Codeforces Round 53 (Rated for Div. 2)C. Vasya and Robot(二分)

                                                                      C. Vasya and Robot Vasya has got a robot which is situated on an infinite Cartesian plane, initially in the cell (0,0)(0,0). Robo...

shaohang_的博客 404

Vasya and Robot- 二分搜索- Educational Codeforces Round 53 (Rated for Div. 2)

题目传送门 题意: 机器人初始位置在(0,0),然后输入一串指令有R,L,D,U,分别向x,y方向行走,R:x+1,L:x-1,U:y+1,D:y-1;。然后输入目标位置,要你求需要改变的最短区间的长度,使得机器人可以走到目标位置,如果不能则输出-1. 思路: 求最小区间长度,我们可以二分搜索区间长度。 先预处理,求出所有区间的前缀和,二分最短区间的长度。关键设计好check()函数,枚举所有长度...

我们花时间收集,却忘了最重要的其实是花时间去消化 202

Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot

  先提前处理求出u,d,l,r的前缀数组,然后 二分修改区间的长度即可 #include&lt;bits/stdc++.h&gt; using namespace std; const int maxn=2e5+10; int n,x7,y7,x2,y2,preu[maxn],pred[maxn],prel[maxn],prer[maxn]; bool check(int len) { ...

SEIZE THE DAY 248

Educational Codeforces Round 53 (Rated for Div. 2)-C. Vasya and Robot

地址:http://codeforces.com/contest/1073/problem/C 思路:一开始做思路就错了,我考虑的是如何转变方向使其有效到达目标位置,但是比较复杂。这题要求更改的区间最小长度。因此可以二分区间长度,在遍历左端点看是否存在即可。判断存在,即更改的区间的个数是否能将其他区域的缺少或多余步骤给消掉即可。 Code: #include&lt;iostream&g...

随风而行的博客 234

Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot (前缀和 + 二分)

题目链接 题意: 给一串以‘U’,‘D’,‘L’,‘R’组成的字符串代表一个初始位置为(0,0)的机器人的行走路线。 然后给一个机器人被要求到达的目标位置(e_x,e_y)。 问能够通过修改字符串 l 到 r 区间的任意字符 使得机器人最终能够到达目标位置,求得的最小的 r - l + 1。 题解: 二分答案求得最小的可行解。但是给你一个答案你怎么判断它可行与否呢。 这时可以用前缀和...

ttoobne 344
上一篇: ACM-ICPC 2017 Asia Xi'an J LOL 【暴力 && 排列组合】
下一篇: POJ 3233 Matrix Power Series 【经典矩阵快速幂+二分】
莜莫oO
博客等级 码龄9年 7粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值