题意:给你一串二进制串,而前N-M是0,后M位是1,让你生成它之后的全排列,next_permutation()解决
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char s[20];
int main()
{
int t;
scanf("%d",&t);
while (t--)
{
int a,b;
scanf("%d%d",&a,&b);
memset(s,0,sizeof(s));
for (int i = 0 ; i < a-b ; i++)
s[i] = '0' ;
for (int j = a-b ; j < a ; j++)
s[j] = '1';
cout<<s<<endl;
while (next_permutation(s,s+a))
cout<<s<<endl;
if (t)
cout<<endl;
}
return 0;
}