#include<bits/stdc++.h>
using namespace std;
int lim=(1<<8)-1;
int p;
int t=1,r[94];
int dfs(int row,int ld,int rd)
{
if(row==lim)
{
t++;
r[t]=r[t-1];
}
else
{
int pos=lim & ~(row|ld|rd);
while(pos)
{
p=pos&(-pos);
pos-=p;
int q=p,ans=0;
while(q)
{
ans++;
q=q>>1;
}
r[t]=r[t]*10+9-ans;
dfs(row+p,(ld+p)<<1,(rd+p)>>1);
r[t]=r[t]/10;
}
}
}
int main()
{
dfs(0,0,0);
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int n0;
cin>>n0;
cout<<r[93-n0];
}
}
1756八皇后 二进制优化
最新推荐文章于 2022-07-13 18:12:48 发布