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

FPGA实现CAN接口(SJA1000) 学无止境,善于积累,每天积累一点点,成功就在眼前,加油! 1 CAN总线简介 CAN(Controller Area Network,控制器局域网 )总线是一个多主机异步串行总线,也是国际上应用最广泛的现场总线之一。在现场总线中,它是惟一被ISO国际标准化组织批准的现场总线。由于其成本低、容错能力强、支持分布式控制、通信速率高等优点在汽车、工业控制、航天等领域得到广泛应用。特别是由于CAN总线具有... 阅读详情

题目链接

题意:

给一串以‘U’,‘D’,‘L’,‘R’组成的字符串代表一个初始位置为(0,0)的机器人的行走路线。

然后给一个机器人被要求到达的目标位置(e_x,e_y)。

问能够通过修改字符串 l 到 r 区间的任意字符 使得机器人最终能够到达目标位置,求得的最小的 r - l + 1。

题解:

二分答案求得最小的可行解。但是给你一个答案你怎么判断它可行与否呢。

这时可以用前缀和来预处理记录下进行每次移动之后机器人的位置,然后每一次二分时将 l 到 r 这个区间内的所有操作删去,直接判断可不可以通过修改该区间内操作来使得机器人最终到达目标点。具体看代码。

代码:

#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<bitset>
#define INF 0x3f3f3f3f
#define MAXM 5 + 10
#define MAXN 200000 + 10

using namespace std;
typedef long long ll;

const ll mod = 1e9 + 7;

int n;
char op[MAXN];
int e_x, e_y;
struct PRE{
    int x, y;
}pre[MAXN];

bool deal(int l, int r)
{
    int t_x = pre[n].x - (pre[r].x - pre[l-1].x);
    int t_y = pre[n].y - (pre[r].y - pre[l-1].y);

    int m_x = e_x - t_x;
    int m_y = e_y - t_y;

    int use = r - l + 1;
    use -= abs(m_x) + abs(m_y);
    if(use < 0 || use & 1)
        return false;

    return true;
}

int main()
{
    scanf("%d %s %d %d", &n, &op, &e_x, &e_y);

    for(int i = 1; i <= n; i ++){
        if(op[i-1] == 'L') pre[i].x --;
        if(op[i-1] == 'R') pre[i].x ++;
        if(op[i-1] == 'U') pre[i].y ++;
        if(op[i-1] == 'D') pre[i].y --;
        pre[i].x += pre[i-1].x;
        pre[i].y += pre[i-1].y;
    }

    int use = n - (abs(e_x) + abs(e_y));
    if(use < 0 || use & 1){
        printf("-1\n");
        return 0;
    }

    if(pre[n].x == e_x && pre[n].y == e_y){
        printf("0\n");
        return 0;
    }

    int l = 0, r = n;
    while(l + 1 < r){
        int mid = (l + r) / 2;
        int flag = 0;
        for(int i = 1; i <= n - mid + 1; i ++){
            if(deal(i, i + mid - 1)){
                flag = 1;
                r = mid;
                break;
            }
        }
        if(!flag) l = mid;
    }

    printf("%d\n", r);
}

/*

The WAM is F**KING interesting .

*/

 

【查找单入口空闲区域】-python实现-附ChatGPT解析 时间限制:1s 空间限制: 256MB 限定语言:不限题目描述:给定一个 m x n 的矩阵,由若干字符X’和 O构成,"X表示该处已被占据,O表示该处空闲,请找到最大的单入口空闲区域。空闲区域是由连通的O组成的区域,位于边界的O可以构成入口,单入口空闲区域即有且只有一个位于边界的o作为入口的由连通的O组成的区域如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。第一行输入为两个数字,第一个数字为行数m,第二个数字列数n,两个数字以空格分隔,1 阅读详情

相关推荐

扩增子测序|iCAMP包——基于系统发育零模型分析确定性和随机性在群落构建过程R中实践

iCAMP的核心功能是通过系统发育分箱的零模型分析,量化不同生态过程的相对重要性。,用于评估不同生态过程(同质选择、异质选择、扩散和漂变)对整个群落及各个系统发育分箱(bin)的相对重要性。该方法也成为nature,science系列文章的常客,深受大家喜欢,在文章中运用该方法将为论文增色不少。外环和内环的圆环图显示了每个门(或变形菌门的分类)中不同过程的相对重要性。中央是系统发育树,内环展示了不同过程的相对重要性,表示每个系统发育箱中的DL。示例代码中提供了数据和代码,已经小编测试,可直接运行。

weixin_46814750的博客 6230

Codeforces 651D Image Preview【思维+二分+前缀后缀和】

D. Image Preview time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Vasya's telephone contains n photos. Photo number 1 i

mengxiang000000 850

双向晶闸管交流调压基础知识及Multisim电路仿真

本文介绍了双向晶闸管交流调压电路的工作原理及应用。该电路由双向晶闸管、RC移相电路和双向触发二极管组成,通过调节电位器改变触发角实现电压调节。当电位器阻值减小时,触发角减小,输出电压升高;阻值增大时,触发角增大,输出电压降低。Multisim仿真展示了不同电位器档位下的波形特征:0%档位时全导通,50%档位时半导通,100%档位时基本关断。该电路结构简单、调节平滑,广泛应用于调光、调速等场合,但会产生谐波干扰。

XU157303764的博客 838

codeforces 776C Molly's Chemicals(前缀和 二分搜索)

题目描述分析这个题其实很简单,对于每一个k的幂次powerk的幂次power我们只需对每一个末端点的前缀和ss,求一下前缀和为s−powers-power的个数,就行了。ac代码#include <cstdio> #include <algorithm> #include <cstring> #include <iostream> #include <vector> #include <queue>

taotao 的大学墓志 1312

契约锁代码审计分析

但是正常来讲,定义了这么多的路由,肯定会有一个通用的判断逻辑,来判断请求的url是否和这些路由匹配。POC中有一点值得注意,Spring新一些的版本中支持以表单的形式来为参数赋值,且无需用注解。但是需要注意4.2.8的代码逻辑和新版本中的不同,此漏洞可能存在于版本大于4.2.8的版本中。方法用于解析LICENSE,先进行AES解密,再从字符串转换成json格式的License。loadPath实际判断传入的path是否和下面的path相等,如果不相等返回null。,如果包含这三个中的一个就会抛出异常。

好记性不如烂笔头 5716

H3LIS200DL三轴加速度传感器原理图设计,已量产(加速度传感器)

在最近的工业振动监测项目里,我们选了 ST 的 H3LIS200DL 做核心传感器 —— 这颗料的特点太契合场景了:±100g/200g 的大量程刚好覆盖设备冲击与振动的测量需求,10μA 的超低功耗能适配电池供电的边缘节点,0.5Hz 到 1kHz 的输出速率也足够抓准动态信号。下面结合实际画的原理图,拆解下这个硬件电路的设计思路。

不脱发的程序猿 336

codeforces 776C

codeforces 776C题目: C. Molly’s Chemicals time limit per test2.5 seconds memory limit per test512 megabytes inputstandard input outputstandard output Molly Hooper has n different kinds of chemicals

Static_Ricardo的博客 962

CGAL AlphaShape算法(自适应Alpha值,二维版本)

CGAL AlphaShape算法(自适应Alpha值,二维版本)

dayuhaitang1的博客 2323

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

基于Python爬虫+词云图+情感分析对某东上完美日记的用户评论分析

随着互联网和社交媒体的发展,用户评论成为了消费者表达自己意见和情感的主要途径之一。对于企业来说,深入了解用户对其产品或服务的看法可以帮助他们更好地了解市场需求、产品改进的方向,以及消费者的情感倾向。因此,对用户评论进行分析已经成为了市场研究和商业决策的重要手段之一。

m0_64336780的博客 1万+

配置 SAP Web Dispatcher 的实战指南:打通 SAP Fiori、SAP Gateway 与前端系统的关键一跳

SAP Web Dispatcher 在 Fiori 架构中扮演关键角色,作为统一入口处理 HTTPS 请求、实现安全代理和流量分发。它将分散在不同系统的访问路径统一收口,解决浏览器同源策略限制,集中管理 HTTPS 终止和客户端信息传递。典型配置中,Web Dispatcher 监听 443 端口,根据路径将 OData 请求转发至 Gateway 系统,静态资源请求送至前端服务器。SSL 相关配置(如 PSE 文件)确保安全通信,而路由规则(wdisp/system_xx)决定请求转发目标。实施时需注意

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 102

【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

XDMA流传输模式

XDMA 流传输模式(Streaming DMA)​ 是 Xilinx FPGA 通过 PCIe 与主机进行 ​实时流式数据传输 的核心机制,

浩瀚之水的专栏 3434

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

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

azmkinbug41973327的博客 139

OV9734 DATASHEET,完整规格书

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

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

android 蓝牙通讯demo

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

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

jre9下载 jdk9

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

【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

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) C. Vasya and Robot 二分+前后缀预处理

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

床前明月光 347

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)

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

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

随风而行的博客 234

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(二分或者尺取)

题目哦 题意:给出一个序列,序列有四个字母组成,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
上一篇: poj2184 Cow Exhibition (变种01背包)
下一篇: POJ - 2528 Mayor's posters (线段树 + 离散化)
ttoobne
博客等级 码龄9年 13粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值