您当前的位置: 首页 > 

*DDL_GzmBlog

暂无认证

  • 0浏览

    0关注

    605博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

[cf] Educational Codeforces Round 123 E. Expand the Path

*DDL_GzmBlog 发布时间:2022-04-16 17:29:19 ,浏览量:0

前言

传送门 : t a g : 1900 , 思 维 tag :1900,思维 tag:1900,思维

题意

给你一个 n ∗ m n*m n∗m的网格,和一个机器人并且给定他的操作路径 D R D R . . . . DRDR.... DRDR....

你可以进行如下置换操作 D D − > D , R R − > R DD->D,RR->R DD−>D,RR−>R

询问能遍历到的多少个点

思路

首先判断两个不用判断的情况

  • 已经走到终点了,显然你再改变一步就不能走到了
  • 只走一个方向 , 显然这个答案就是 n n n

否则我们需要找到 开始能操作的点,即出现 D , R D,R D,R的点,然后就开始计算走到了哪里

显然之前一路走的点是不能再回去了 n ∗ n − i d x ∗ n + i d x n*n -idx*n+idx n∗n−idx∗n+idx,但是可以需要加上已经走过的点

然后再减去,已经走远的点,因为只有 D , R D,R D,R操作,走过了就不回不去了

Mycode
void solve(){
	int n;cin>>n;
	string s;cin>>s;
	int x1 = 1,y1 = 1;
	
	
	int stR = 0 ;
	int stD = 0 ;
	
	for(auto x : s){
		if(x == 'D') x1++,stD = 1;
		else y1++ ,stR = 1;
	}
	
	if(x1 == n && y1 == n){
		cout            
关注
打赏
1657615554
查看更多评论
0.0504s