📄 usaco_hamming.cpp
字号:
/*
ID:wangyuc2
PROG:hamming
LANG:C++
*/
#include <iostream>
#include <fstream>
#include <memory.h>
#include <cmath>
#include <algorithm>
using namespace std;
ifstream fin ("hamming.in");
ofstream fout ("hamming.out");
unsigned short com[9]={1,2,4,8,16,32,64,128,256};
int count_diff(unsigned short a,unsigned short b)
{
unsigned short t1,t2=0;
t1=a^b;
for(int i=0;i<8;i++)
{
if(t1 & com[i]) t2++;
}
return t2;
}
int main()
{
int i,j,k,countt;
int num,b,d,count,min,minm=256;
bool same[256],now[256];
unsigned short a;
fin>>num>>b>>d;
// for(i=0;i<com[b]-num;i++)
//{
i=0;
memset(now,false,sizeof(now));
j=i+1;
count=1;
now[i]=true;
min=10000;
while(count<num && j<com[b])
{
for(k=0,countt=0;countt<count && k<j;k++)
{
if(now[k] && count_diff(k,j)>=d)
{
countt++;
}
}
if(countt == count)
{
now[j]=true;
count++;
}
j++;
}
if(count == num) min=j;
if(min<minm) memcpy(same,now,sizeof(now));
// }
count=0;
for(i=0;i<com[b] && count<num-1;i++){
if(same[i]) {
if((count+1)%10 == 0) fout<<i<<endl;
else fout<<i<<' ';
count++;
}
}
while(!same[i]) i++;
fout<<i<<endl;
//system("PAUSE");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -