Ryan123 • 2年前
using namespace std; set s; int SS(int n) { string str="("; for(int i=0; i<n; i++) if((1<<i) & n) str+=char(i+'a'); s.insert(str+")"); } int main() { int n; cin>>n; for(int i=0; i<(1<<n); i++) SS(i); for(set::iterator it=s.begin(); it!=s.end(); it++)
cout<<*it<<'\n';
return 0; //哪位带佬帮我看看为神马出错?
评论:
啥叫set s?? 所以循环那里也要改。
函数里循环的N是单独的一个数。 也就是:
int N;
set<string>s;
void Subset(int n)
{
string str="(";
for(int i=0; i<N; i++)//注意这里的N是全局变量,是没有改变的。
if((1<<i)&n)
str+=char(i+'a');
s.insert(str+")");
}