欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

UVA 729 - The Hamming Distance Problem

程序员文章站 2024-03-19 08:33:40
...

题目大意:两个由01组成的字符串之间的汉明距离为两个字符串异或结果有几个1。输出字符串长度L以及汉明距离H,求与该长度为L字符全为0的字符串的汉明距离为H的所有字符串,字典次序列出全部。

解题思路:将第一个汉明距离为H的字符串读入即除了最后汉明距离长度的为1外,其他为0,然后用next_permutation列出所有。

ac代码:

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int n, len, H;
char st[20];
int main()
{
	scanf("%d", &n);
	while (n--){
		scanf("%d%d", &len, &H);
		for (int i=0; i<len; i++)
			if (i >= len-H)
				st[i] = '1';
			else
				st[i] = '0';
		printf("%s\n", st);
		while (next_permutation(st, st+len)) 
			printf("%s\n", st);	
		if (n)
			printf("\n");		
		memset(st, 0, sizeof(st));
	}
return 0;
}
相关标签: UVA