B3622题解
QWQAWAQWQAWA · · 题解
思路
想法
考虑使用 bitset 进行求解。
关于bitset
这里有关于 bitset 的介绍。
由于内存地址是按字节即 byte 寻址,而非比特 bit,一个 bool 类型的变量,虽然只能表示 0/1, 但是也占了 1 byte 的内存。bitset 就是通过固定的优化,使得一个字节的八个比特能分别储存 8 位的 0/1。对于一个 4 字节的 int 变量,在只存 0/1 的意义下,bitset 占用空间只是其
以上内容来自 oi-wiki。
实现
对于每一次循环,都要输出
代码
#include <bits/stdc++.h>
using namespace std;
bitset<1000>bs;
int main()
{
int n;
cin>>n;
for(int i=0;i<(1<<n);i++){
bs=i;
for(int j=n-1;j>=0;j--){
if(bs[j])
cout<<"Y";
else
cout<<"N";
}
cout<<endl;
}
return 0;
}