c++40分求助(码风优良)
查看原帖
c++40分求助(码风优良)
1027430
hlb44楼主2025/1/21 17:40
#include<bits/stdc++.h>
using namespace std;
long long poww(long long x){
	if(!x) return 1;
	long long sum=1;
	for(long long i=1;i<=x;i++){
		sum*=2;
	}
	return sum;
}
int main(){
	long long n,m;
	string s,ans;
	cin>>m>>n;
	if(m) cin>>s;
	long long fn=n;
	while(fn){
		ans+=fn%2+'0';
		fn/=2;
	}
	reverse(ans.begin(),ans.end());
	for(long long i=0;i<s.size();i++){
		if(s[i]=='U'){
			ans.erase(ans.end()-1);
			continue;
		}else if(s[i]=='L'){
			ans+='0';
		}else{
			ans+='1';
		}
	}
	long long cnt=0;
	for(long long i=0;i<ans.size();i++){
		cnt+=(ans[i]-'0')*poww(ans.size()-1-i);
	}
	cout<<cnt;
	return 0;
}
2025/1/21 17:40
加载中...