本文主要是介绍UVa 729: The Hamming Distance Problem,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这道题只要枚举出所有情况就可以了。
从最左边一位开始分别讨论为0和为1 两种情况,向右递归。
我的解题代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <string>
using namespace std;int s[16];
int T,N,H;void f(int curn, int curh)
{if(curn==N && curh==H){for(int i=0; i<N; i++) cout << s[i]; cout << endl;return ;}if((N-curn) > (H-curh)){s[curn]=0;f(curn+1,curh);}if(curh < H){s[curn]=1;f(curn+1,curh+1);}
}int main()
{cin >> T;while(T--){cin >> N >> H;memset(s,0,sizeof(s));f(0,0);if(T) cout << endl;}return 0;
}
这篇关于UVa 729: The Hamming Distance Problem的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!