3 条题解
-
1
#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; }
信息
- ID
- 569
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 138
- 已通过
- 58
- 上传者