3 条题解

  • 1
    @ 2023-7-16 20:34:45
    /*****************
    备注:
    *****************/
    #include <iostream>
    #include <iomanip>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #include <cstdio>
    using namespace std;
    #define LL long long
    #define MAXM 3010
    #define MAXN 3010
    const int N =1e5+10;
    const int INF =0x3f3f3f3f;
    int n,b,d;
    int a[70],lens,num;
    int check(int x,int y)
    {
        int k=x^y,ans=0;
        while(k>0)
        {
            ans++;
            k-=k&(-k);
        }
        return ans;
    }
    int main ()
    {
        bool flag=1;
        scanf("%d%d%d",&n,&b,&d);
        while(lens<n)
        {
            flag=1;
            for(int i=1;i<=lens;++i)
                if(check(a[i],num)<d) flag=0;
            if(flag) a[lens++]=num;
            num++; 
        }
        for(int i=1;i<=n;++i)
        {
            printf("%d ",a[i-1]);
            if((i%10)==0) cout<<endl;
        }
       return 0;
    }
    
    • 1
      @ 2023-6-11 18:05:58

      image

      #include<cstdio>
      using namespace std;
      int n,b,d,h,H[65];
      bool yes;
      bool ch(int x,int y)
      {
      	int di=0;//初始化
      	for (int i=1;i<=8;i++)//枚举每一位
      	 if (((x^y)>>(i-1))&1)//是否不同
      	  di++;//统计
      	if (di>=d) return 1;//不同的单位大于等于d
      	return 0;//小于d
      }
      int main()
      {
      	scanf("%d%d%d",&n,&b,&d);//读入
      	h=-1;//初始化
      	for (int i=1;i<=n;i++)
      	{
      		yes=1;//初始化
      		while (yes)
      		{
      			yes=0; h++;//尝试下一个数
      			for (int j=1;j<=i-1;j++)//枚举前面的每一个编码
      			 if (!ch(H[j],h))//符不符合
      			 {
      				yes=1;//标记
      				break;//直接开始尝试下一个数(这一个数不是)
      			 }
      		}
      		printf("%d ",h);//输出
      		H[i]=h;//记录
      		if (!(i%10))
      		 printf("\n");//处理换行
      	}
      	return 0;
      }
      
      • 0
        @ 2023-12-3 20:28:39
        #include <iostream>
        #include <iomanip>
        #include <cmath>
        #include <cstring>
        #include <algorithm>
        #include <cstdio>
        using namespace std;
        #define LL long long
        #define MAXM 3010
        #define MAXN 3010
        const int N =1e5+10;
        const int INF =0x3f3f3f3f;
        int n,b,d;
        int a[70],lens,num;
        int check(int x,int y)
        {
            int k=x^y,ans=0;
            while(k>0)
            {
                ans++;
                k-=k&(-k);
            }
            return ans;
        }
        int main ()
        {
            bool flag=1;
            scanf("%d%d%d",&n,&b,&d);
            while(lens<n)
            {
                flag=1;
                for(int i=1;i<=lens;++i)
                    if(check(a[i],num)<d) flag=0;
                if(flag) a[lens++]=num;
                num++; 
            }
            for(int i=1;i<=n;++i)
            {
                printf("%d ",a[i-1]);
                if((i%10)==0) cout<<endl;
            }
           return 0;
        }
        
        • 1

        信息

        ID
        569
        时间
        1000ms
        内存
        256MiB
        难度
        5
        标签
        递交数
        127
        已通过
        52
        上传者