1010 Radix (25 分)「PAT甲级」

#include 
#include 
#include 
#include "cmath"
#define int long long
using namespace std;
unordered_mapcantor;//构建一个对应的字符串与数值的表
//转换模块
int trans(string n,int radix)
{
	int ans = 0;
	for(auto i : n)//对应了n的位置拿数值的!!!
		ans = ans * radix + cantor[i];
	return ans;
}
int AC(string s,string a,int radix)
{
	int right = trans(s,radix),left = -1, tag = right;
	for(auto i : a)//最大的一位+1(最小的底线
		left = max(left,cantor[i]+1);
	while(left=tag)
		{
			right = mid;
		}else if(k> n1 >> n2 >> tag >> radix ;
	for(int i=0;i<36;i++)
		cantor.insert({i<10?i+'0':i-10+'a',i});
	radix=tag==1 ? AC(n1,n2,radix) : AC(n2,n1,radix);
	if(radix==-1) cout<<"Impossible"<

你可能感兴趣的:(PTA,蓝桥杯,c++,拓扑学)