社区讨论

呜呜

P1555[USACO11NOV] 尴尬的数字 Awkward Digits B参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@loclr10k
此快照首次捕获于
2023/10/30 15:52
2 年前
此快照最后确认于
2023/11/05 03:01
2 年前
查看原帖
呜呜
CPP
#include<bits/stdc++.h>
using namespace std;

int x;
string s2;
string s3;
string schange="123456789012345678901234567890";

int change2to10()
{
	int sum;
	int product=1;
	for(int i=s2.size()-1;i>=0;i--)
	{
		sum+=product*(s2[i]-'0');
		product*=2;
	}
	return sum;
}

int change10to3()
{
	int cnt=0;
	while(x)
	{
		schange[cnt++]=(char)(x%3+'0');
		x/=3;
	}
	for(int i=0;i<cnt/2;i++)
	{
		swap(schange[i],schange[cnt-i-1]);
	}
	return cnt;
}

int main()
{
	cin>>s2>>s3;
	for(int i=0;i<s2.size();i++)
	{
		if(s2[i]=='1')
		{
			s2[i]='0';
		}
		else if(s2[i]=='0')
		{
			s2[i]='1';
		}
		if(s2[0]=='0')
		{
			if(s2[i]=='1')
			{
				s2[i]='0';
			}
			else
			{
				s2[i]='1';
			}
			continue;
		}
		else
		{
			x=change2to10();
			int n=x;
			int Cnt=change10to3();
			if(Cnt!=s3.size())
			{
				if(s2[i]=='1')
				{
					s2[i]='0';
				}
				else
				{
					s2[i]='1';
				}
				continue;
			}
			else
			{
				int cnt=0;
				for(int i=0;i<s3.size();i++)
				{
					if(s3[i]!=schange[i])
					{//cout<<"asfnajnfty";
						cnt++;
					}
				}
				if(cnt==1)
				{
					cout<<n;
					exit(0);
				}
			}
		}
		if(s2[i]=='1')
		{
			s2[i]='0';
		}
		else
		{
			s2[i]='1';
		}
	}
	return 0;
}
哪里错了? 明明样例都是对的。

回复

1 条回复,欢迎继续交流。

正在加载回复...