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

【CSP-J/S初赛知识点整理】 CSP-J/S初赛知识点整理 阅读详情

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

AC code:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
typedef long long LL;
int sx[maxn],sy[maxn];
char s[maxn];
int n = 0,x = 0,y = 0;
bool check(int m){
	for(int i = 1;i + m -1 <= n;++i){//枚举所有长度为m的区间 
		int xx = sx[n] - (sx[i+m-1] - sx[i-1]);//不需要改变区间对x,y的贡献值 
		int yy = sy[n] - (sy[i+m-1] - sy[i-1]);
		
		int tx = x - xx,ty = y - yy;//要改变区间对x,y的贡献值 
		if(abs(tx) + abs(ty) <= m && (m - (abs(tx) + abs(ty))) % 2 == 0){
			return true;
		}
	}
	return false;
}
int main(){
	while(~scanf("%d",&n)){
		fill(sx,sx+maxn,0);fill(sx,sx+maxn,0);
		scanf("%s",s+1);
		scanf("%d %d",&x,&y);
		
		for(int i = 1;i <= n;++i){//计算前缀和 
			sx[i] = sx[i-1] + (s[i] == 'R' ? 1 : (s[i] == 'L' ? -1 : 0));
			sy[i] = sy[i-1] + (s[i] == 'U' ? 1 : (s[i] == 'D' ? -1 : 0));
		}
		
		int ans = -1,l = 0,r = n;
		while(l <= r){//二分搜索区间长度 
			int mid = (l + r ) >> 1;
			if(check(mid)){
				ans = mid;
				r = mid -1;
			}else{
				l = mid + 1;
			}
		}
		printf("%d\n",ans);
	}
	
	return 0;
}

【教程4>第7章>第6节】基于FPGA的Viterbi维特比译码verilog实现——ACS加比选单元1 本文介绍了ACS加比选单元模块在FPGA中的实现过程,重点讲解了维特比译码中的ACS单元功能及其在硬件实现中的关键问题。文章首先概述了ACS单元在维特比译码中的作用,即通过计算和比较分支度量值来选择最优路径。接着,详细描述了FPGA实现中的分支度量值归一化处理策略,并指出了其存在的弊端。随后,文章提供了基于Verilog的ACS加比选单元模块代码,解释了其输入输出端口及工作流程。最后,总结了本小节内容,并预告了下一章节将涉及ACS顶层模块的开发与仿真测试。 阅读详情

相关推荐

Rust Reqwest+Rustls 自签名证书校验

所以这里必须保证reqwest引用的rustls库和本地工程一致。以上就是实现不校验签名的逻辑,后续自己可以在对应回调进行逻辑判断。

bawomingtian123的专栏 1349

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

STM8S全解析之系列文章4---STM8S芯片项目升级引导程序(使用中断接收升级数据)

STM8S全解析之系列文章4—STM8S芯片项目升级引导程序(使用中断接收升级数据) 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录STM8S全解析之系列文章4---STM8S芯片项目升级引导程序(使用中断接收升级数据)前言一、Flash划分boot和App二、使用步骤1.引入库2.读入数据总结 前言 用过STM8S都知道它没有中断向量重定向,也就意味着STM8S的中断向量没办法指向其他的位置,间接说明升级的引导

weixin_39853312的博客 1030

Codeforces 355C Vasya and Robot【贪心+前缀和】

C. Vasya and Robot time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Vasya has n items lying in a line. The items are co

mengxiang000000 682

LDPC码译码原理——概率公式推导

怎么说呢,一直以来都想写一下博客。近半年多来我一直在学习LDPC码译码上的东西,主要是在FPGA实现上的,所以这次想写一些关于这方面的内容,包括译码的原理、仿真以及实现。(当然是基于准循环LDPC码上实现的)不过呢,我写这个的初衷是为了让初学者理解入门用的,而不是在大牛面前班门弄斧,有错误之处欢迎大家批评指正。不知道会不会有人一开始像我一样,为了学好LDPC码,先去好好了解其它的诸如RS码或者是卷...

stand_by_me123的博客 2万+

OSPF路由协议配置

构建直连连通让R1、R2、R3、R4加入OSPF,实现全网互通。掌握OSPF邻居状态的解读。掌握单区域OSPF的配置。理解OSPF的基本概念。AR3上的OSPF配置。AR4上的OSPF配置。R1上的OSPF配置。R2上的OSPF配置。

SURTR999的博客 7694

【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

从零构建AI Agent集群:Docker Compose与Nginx部署实战

在AI应用开发领域,微服务架构和容器化部署已成为提升开发效率和系统可维护性的关键技术。Docker Compose作为容器编排工具,能够将多个独立服务(如Node.js、Python应用)及其依赖(数据库、缓存)封装在隔离环境中,并通过统一配置文件定义服务间的网络与依赖关系,实现一键启停。Nginx作为反向代理,则提供了统一的网络入口、请求路由和负载均衡能力,是构建高可用Web应用的基石。这种组合技术方案的价值在于,它能将复杂的AI系统(如工作流引擎、对话Agent、技能库)的部署运维复杂度大幅降低,使得开

weixin_27028523的博客 638

(二分)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

LSTM 双向 Bi-LSTM

LSTM 双向 Bi-LSTM

jacke121的专栏 1516

信号与电源完整性5:轨道塌陷噪声/电源轨道噪声分析及降低解决方案

经过上一节关于串扰的分析,我们已经清楚,噪声问题不仅仅来源于信号网络;电源和地网络所产生的噪声,被反馈到其所在的元器件和信号网络时,其破坏力也是巨大的;本节所讨论的轨道塌陷噪声就是一个典型的实例。在经过电源的地网络的电流发生改变时,在电源和地之间的阻抗上将产生一个压降;由于该压降的产生,用电元件的电压将直接被拉低,甚至可能对电路产生功能性的错误。接下来硬小二将详细的分析电源轨道噪声和降低其的解决方法。...

fydar的博客 2241

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

微信服务号配置总是提示“参数错误”?我就是这样一步步查出问题的

前两天,我遇到了一个很诡异的问题:在微信服务号后台配置服务器地址时,总是提示“参数错误,请重新填写”。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1277

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

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

azmkinbug41973327的博客 139

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【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

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

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

Camera2Demo

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

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

任意门: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 g...

Mod_13的博客 145

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

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 二分+前后缀预处理

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

床前明月光 347

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: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

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

CF教育场69-D(好题)-Yet Another Subarray Problem-动态规划-

题目传送门 题解:考虑dp的做法,dp[i][j]代表以第i个数为右端点,长度求余m的值为j时的最大值。 转移方程:dp[i][j]=dp[i-1][j-1]+ai dp[i][j]=max(dp[i-1][m-1]+a[i]-k,a[i]-k)(j==0) AC code: #include<bits/stdc++.h> #define per(i,a,b) for(int i = ...

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

CF-思维题-div2-564-C. Nauuo and Cards

题目传送门 Official Tutorial: First, try to finish it without playing any empty cards. If that’s not possible, the best choice is to play several empty cards in a row, then play from 1 to n. For a card i, ...

我们花时间收集,却忘了最重要的其实是花时间去消化 744
上一篇: 动态规划DP-背包问题-ACM
下一篇: N的倍数-抽屉原理-前缀和
Mavis code
博客等级 码龄9年 13粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值