刘嘉柚 • 1个月前
很有搞头的一题,众所周知,枚举一般是由多个循环嵌套起来,在判断条件的东东。(废话)
但是这题并不水,简直是海(((
上期的蒟蒻
由于不会做黑题,所以他来刷海题力!神犇:“吾见一人栽于黑题,却立于海题也。”蒟蒻十分生气,曰:“能君与吾海题之决?”神犇应也。
于是
for(int i=0;i<=1;i++)
for(int j=0;j<=1;j++)
for(int k=0;k<=1;k++)
for(int l=0;l<=1;l++)
{
if((i+j+k+l)%2==step%2 && i+j+k+l<=step)
{
cnt++;
for(int t=1;t<=n;t++)
a[cnt][t]=1;
if(i)
for(int t=1;t<=n;t++)
a[cnt][t]=1-a[cnt][t];
if(j)
for(int t=1;t<=n;t+=2)
a[cnt][t]=1-a[cnt][t];
if(k)
for(int t=2;t<=n;t+=2)
a[cnt][t]=1-a[cnt][t];
if(l)
for(int t=1;t<=n;t+=3)
a[cnt][t]=1-a[cnt][t];
for(int t=1;t<=n;t++)
if((a[cnt][t]==s[t])||(a[cnt][t]==s[t])||s[t]==-1);
else
{
cnt--;
break;
}
}
}
Comments: