3 条题解
-
1朱麒睿 (zhuqirui) LV 10 @ 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; }
-
12023-6-11 18:05:58@
#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; }
-
02023-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
- 标签
- 递交数
- 129
- 已通过
- 54
- 上传者