洛谷外的题目
查看原帖
洛谷外的题目
993175
a_gold_TomAndJerry楼主2023/7/1 16:16

题目内容:

在无限宽广的二维平面直角坐标系中,小明在(0,0)处操作无人机。小明操作无人机的命令有以下4种。 L将当前无人机的位置作为(x,y)移动到(x-1,y) R将当前无人机的位置作为(x,y)移动到(x+1,y) U将当前无人机的位置作为(x,y)移动到(x,y+1) D将当前无人机的位置作为(x,y)移动到(x,y-1) 无人机被若干命令操作后,移动到了某个地方。小明记忆中对无人机操作序列为字符串S,但有几个地方忘记了,用?表示。?可能是L、R、U、D中的任意一个。 无人机和小明的距离以无人机的位置为(x,y)为准,用曼哈顿距离表示,即|x|+|y|。给一个整数T,如果T=1请求距离最大值,如果T=2请求距离最小值。

代码:

#include<bits/stdc++.h>
using namespace std;
int x=0,y=0,s=0;
string n;
int main(){
	cin>>n;
	cin>>s;
	int len=n.length();
	for(int i=0;i<len;i++){
	    if(n[i]=='L') x-=1;
	    else if(n[i]=='R') x+=1;
	    else if(n[i]=='U') y+=1;
	    else if(n[i]=='D') y-=1;
	    else{
	        if(s==1){
	            if(x<y) y+=1;
	            else x+=1; 
	        }else{
	            if(x<y) y-=1;
	            else x-=1; 
	        }
	    }
	}
	if(x<0) x=abs(x);
	if(y<0) y=abs(y);
	cout<<x+y<<endl;
	return 0;
}

请问有什么错吗?

2023/7/1 16:16
加载中...