描述:和前面的几道水题一样,还是两种代码,使用库函数的话耗时比较少一点,用刘汝佳的生成可重集排列的方法耗时多,没什么难度
代码一:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
//freopen("a.txt","r",stdin);
char s[20];
int n,len,m;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&len,&m);
memset(s,0,sizeof(s));
for(int i=0;i<len-m;i++) s[i]='0';
for(int i=len-m;i<len;i++) s[i]='1';
do
{
printf("%s\n",s);
}while(next_permutation(s,s+len));
if(n) printf("\n");
}
return 0;
}