UVa729 The Hamming Distance Problem
求输出所有 含h个1的且长度为n的01串
可重集全排列 集合为{1,0}
#include<iostream>
#include<stdio.h>
using namespace std;
int cas,n,h;
int tmp[17];
void DFS(int cur,int num)
{
if(num>h)return;
if(cur==n)
{
if(num==h)
{
for(int i=0;i<n;i++)
printf("%d",tmp[i]);
printf("\n");
}
return;
}
for(int i=0;i<=1;i++)
{
if(i==1)
{
tmp[cur]=1;
DFS(cur+1,num+1);
}
else
{
tmp[cur]=0;
DFS(cur+1,num);
}
}
return;
}
int main()
{
cin>>cas;
while(cas--)
{
cin>>n>>h;
DFS(0,0);
if(cas)printf("\n");
}
}
浙公网安备 33010602011771号