为什么和样例一样全wa,明明数据第一个是样例
查看原帖
为什么和样例一样全wa,明明数据第一个是样例
1070112
T_sun01楼主2024/10/21 19:34
#include<bits/stdc++.h>
using namespace std;
int k,n=1;
char a[20005],ans[20005],x[20005];
char dfs(int len,int p,int s)
{
	if(len==1)
	{
		if(a[s]=='1')
			ans[p*2]='I';
		else ans[p*2]='B';
		if(a[s+1]=='1')
			ans[p*2+1]='I';
		else ans[p*2+1]='B';
		if(ans[p*2]==ans[p*2+1])return ans[p*2];
		return 'F';
	}
	ans[p*2]=dfs(len/2,p*2,s-len/2);
	ans[p*2+1]=dfs(len/2,p*2+1,s+len/2);
	if(ans[p*2]=='F'||ans[p*2+1]=='F')return 'F';
	if(ans[p*2]!=ans[p*2+1])return 'F';
	return ans[p*2];
}
void f(int p)
{
	if(p>2*n)return ;
	x[++k]=ans[p*2+1];
	f(p*2+1);
	x[++k]=ans[p*2];
	f(p*2);
}
int main()
{
	scanf("%d",&k);
	for(int i=1;i<=k;i++)
		n*=2;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	ans[1]=dfs(n/2,1,n/2);
	k=0;
	x[++k]=ans[1];
	f(1);
	for(int i=k;i>=1;i--)
		cout<<x[i];
	return 0;
} 

我的输出:IBFBBBFIBFIIIFF 数据点1的输出:IBFBBBFIBFIIIFF 有什么不同吗???

2024/10/21 19:34
加载中...