USACO-Hamming Codes(枚举)

来源:互联网 发布:macbook删除windows 编辑:程序博客网 时间:2024/06/05 04:53

题目链接:USACO-Hamming Codes

既然要求字典序最小,那么直接枚举就行了。


/*ID: xdujlx1PROG: hammingLANG: C++*/#include<bits/stdc++.h>using namespace std;int ans[70];int k;int n,b,d;void ioinit(){freopen("hamming.in","r",stdin);freopen("hamming.out","w",stdout);}int dis(int c){int res=0;while(c){res+=c&1;c>>=1;}return res;}bool check(int c){for(int i=0;i<k;i++)if(dis(c^ans[i])<d)return false;return true;}int main(){ioinit();scanf("%d%d%d",&n,&b,&d);ans[k++]=0;for(int i=1;i<(1<<b);i++)if(check(i))ans[k++]=i;for(int i=0;i<n;i+=10){printf("%d",ans[i]);for(int j=i+1;j<i+10&&j<n;j++)printf(" %d",ans[j]);printf("\n");}return 0;}


0 0
原创粉丝点击