为啥MLE了啊,求大佬指点
查看原帖
为啥MLE了啊,求大佬指点
178128
杨凯楼主2020/11/13 21:13
#include<bits/stdc++.h>
using namespace std;
int n,p;
char s[15];
int count0=0,count1=0;
char judge(int st,int en,int num)
{
//	int c[10];
//	for(int i=0;i<num;i++)c[i]=s[i+st]
    count0=0;
	count1=0;
	for(int i=st;i<st+num;i++)
	{
		if(s[i]=='1')count1++;
		else count0++;
	}
	if(count1&&(!count0))return 'I';
	if(count0&&(!count1))return 'B';
	if(count0&&count1)return 'F';
}
void dfs(int st,int en,int num)
{
//	for(int i=0;i<num;i++)cout<<c[i];
//	cout<<endl; 
	if(num==1)
	{
		cout<<judge(st,en,num);
		return ;
	}
//    char c1[10];
//	for(int i=0;i<num/2;i++)c1[i]=c[i];
	dfs(st,(st+en)/2,num/2);
//	for(int i=0;i<num/2;i++)c1[i]=c[i+num/2];
	dfs((st+en)/2+1,en-1,num/2);
    cout<<judge(st,en,num);
	return ;
}
int main()
{
	cin>>n;
	cin>>s;
	dfs(0,pow(2,n)-1,pow(2,n));
	return 0;
}

2020/11/13 21:13
加载中...