⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usaco_hamming.cpp

📁 usaco自己做的1到5章的代码
💻 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 + -