怀疑数据不仅仅包含ULR
查看原帖
怀疑数据不仅仅包含ULR
145943
ycrrjy楼主2024/12/24 18:13

不对的代码

#include<bits/stdc++.h>
using namespace std;
long long n,x;
string s;
deque<int> dq;

void change(long long k)
{
	while(k)
	{
		dq.push_front(k%2);
		k/=2;
	}
}

int main()
{
	cin>>n>>x;
	cin>>s;
	change(x);
	for(int i=0;i<s.size();i++)
	{
		if(s[i]=='U'&&dq.size()>1)
			dq.pop_back();
		else if(s[i]=='L')
			dq.push_back(0);
		else 
			dq.push_back(1);
	}
	long long ans=0;
	for(int i=0;i<dq.size();i++)
		ans=ans*2+dq[i];
	cout<<ans;
	return 0;
}

正确的代码

#include<bits/stdc++.h>
using namespace std;
long long n,x;
string s;
deque<int> dq;

void change(long long k)
{
	while(k)
	{
		dq.push_front(k%2);
		k/=2;
	}
}

int main()
{
	cin>>n>>x;
	cin>>s;
	change(x);
	for(int i=0;i<s.size();i++)
	{
		if(s[i]=='U'&&dq.size()>1)
			dq.pop_back();
		else if(s[i]=='L')
			dq.push_back(0);
		else if(s[i]=='R')
			dq.push_back(1);
	}
	long long ans=0;
	for(int i=0;i<dq.size();i++)
		ans=ans*2+dq[i];
	cout<<ans;
	return 0;
}

仅仅多了if(s[i]=='R'),严重怀疑题目数据有问题,调了半天!!

2024/12/24 18:13
加载中...