Hamming距离
两个字符串的Hamming距离是对应位置位数的不同。例如:
输入
输入由多个数据组组成。第一行表示数据组的组数,每组数据包含字符串的位数N和Hamming距离H
输出
对于每组数据,列出所有可能的情况(另一个字符串全部为0,即要求一个长度为n的序列,其中要有h个1,求它的全排列),按照从小到大的顺序排列
简单全排列
注意输出格式!
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
const int maxn = 20;
int n, h;
int a[maxn];
int main()
{
int T, blank = 0;
scanf("%d", &T);
while (T--)
{
if (blank)
printf("\n");
scanf("%d %d", &n, &h);
int pos = 0;
for (int i = 0; i < n - h; ++i)
a[i] = 0;
for (int i = n - h; i < n; ++i)
a[i] = 1;
do
{
for (int i = 0; i < n; ++i)
printf("%d", a[i]);
printf("\n");
}while (next_permutation(a, a + n));
blank = 1;
}
return 0;
}