硬币翻转
#include <bits/stdc++.h>
using namespace std;
const int maxn = 101;
bool a[maxn]={0};
int main(){
int n;
cin>>n;
cout<<n<<endl;
for (int i=0;i<n;i++){
for (int j=0;j<n;j++){
if (i!=j){
if (a[j]) a[j]=0; // 开关模型
else a[j]=1;
}
cout<<a[j];
}
cout<<endl;
}
return 0;
}
依题意得:只有在正对角线上的数字不翻,其他就翻。且最小步骤永远为n。