我算法也每很复杂啊,为啥会超时啊,求大佬帮忙看看
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int n;
cin>>n;
int py=0;
for(int i=1;i<n;)
{
py++;
i*=2;
}
int f[py+5][n+5];
memset(f,0,sizeof f);
for(int i=1;i<=n;i++)
{
int j=i;
for(int k=1;k<=py;k++)
{
f[k][i]=j%2;
j/=2;
}
}
cout<<py<<" ";//朋友人数
for(int i=1;i<=py;i++)
{
int sum=0;
for(int j=1;j<=n;j++)
{
if(f[i][j]==1) sum++;
}
cout<<sum<<" ";
for(int j=1;j<=n;j++)
{
if(f[i][j]==1) cout<<j<<" ";
}
}
cout<<endl;//输出结束
string dzt;
cin>>dzt;
int fm[n+5];
for(int i=1;i<n+3;i++) fm[i]=1;
for(int i=1;i<=py;i++)
{
if(dzt[i-1]=='1')
{
for(int j=1;j<=n;j++)
{
if(f[i][j]==0) fm[j]=0;
}
}
else if(dzt[i-1]=='0')
{
for(int j=1;j<=n;j++)
{
if(f[i][j]==1) fm[j]=0;
}
}
}//判断哪些有毒
for(int i=1;i<=n;i++) {
if(fm[i]==1) {
cout<<i<<endl;
return 0;
}
}
}
谢谢