USACO sec2.1 Hamming Codes
2012-08-21 15:24
393 查看
直接枚举就行了,不带回溯的搜索。
/* PROG : hamming LANG : C++ */ # include <stdio.h> # define id(x) ((x)>>3) # define of(x) ((x)&0x7) # define get(x) ((h[id(x)]>>of(x))&0x1) # define set(x) (h[id(x)] |= (0x1<<of(x))) int n, b, d; char h[(1<<5) + 1]; int sol[70]; /*************************************************/ int dis(int x, int y) { int s = x ^ y, r = 0; while (s) { ++r; s &= s-1; } return r; } void search(int cur, int cnt) { int i, j; if (cnt > n) return ; for (i = cur+1; i < (1<<b); ++i) if (!get(i)) { for (j = 1; j <= cnt; ++j) if (dis(sol[j], i) < d) break; set(i); if (j > cnt) {sol[cnt+1] = i; search(i, cnt+1);} } } /*************************************************/ void solve(void) { int i; scanf("%d%d%d", &n, &b, &d); sol[1] = 0, set(0); search(0, 1); for (i = 1; i <= n; ++i) { if (i%10 != 1) putchar(' '); printf("%d", sol[i]); if (i<n && i%10 == 0) putchar('\n'); } putchar('\n'); } int main() { freopen("hamming.in", "r", stdin); freopen("hamming.out", "w", stdout); solve(); fclose(stdin); fclose(stdout); return 0; }
相关文章推荐
- USACO-Section2.1 Hamming Codes【暴力枚举】
- USACO-Section2.1 Hamming Codes(深度优先搜索)
- USACO-cha2-sec2.1 Healthy Holsteins
- USACO 2.1 Hamming Codes (迭代)
- USACO Section 2.1 Hamming Codes (dfs)
- USACO 2.1 Hamming Codes (递归)
- USACO-Section 2.1 Hamming Codes (DFS)
- USACO 2.1 Hamming Codes(位运算枚举)
- USACO 2.1 Hamming Codes (hamming)
- USACO-cha2-sec2.1 The Castle
- USACO 2.1 Hamming Codes
- USACO sec2.1 Healthy Holsteins
- USACO Section 2.1: Hamming Codes
- [2016/7/20][usaco 2.1]Hamming Codes
- USACO 2.1 Hamming Codes
- USACO 2.1 海明码 Hamming Codes
- 【USACO 2.1】Hamming Codes
- USACO 2.1 Hamming Codes
- USACO Section2.1 Hamming Codes 解题报告 【icedream61】
- USACO section 2.1 Healthy Holsteins(枚举,二进制存储)