这道题加了2个看起来奇奇怪怪的$tag$

1.输出格式:不得不说这个格式输出很恶心,很像$UVA$的风格,细节稍微处理不好就会出错。

因为这个还$WA$了一次:

   int t=,m=n;
while(m>=)
{
for(int i=t+;i<=t+;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[t+]);
t+=;
m-=;
}
if(m==) return ;//一定要注意这个东西!!!
for(int i=t+;i<n;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[n]);

就是刚刚好个数是整十数的时候,$while$外面的循环是没有用的,循环虽然进不去,外面的$ans[n]$却能被输出,所以就会错。

其实$m$有点多余来着,只需要$t$控制就可以了,不过这么写,会直观一点吧。

2.题意理解:这道题题目描述也比较唬人,搞了好多进制转化的东西出来,然而并没有什么用,因为即使是在不同的进制下,数的大小是不会变的。

所以这个东西就是来唬人的,直接用10进制从小到大枚举就可以了。

所以题意就是求尽量小的$n$个数,使两两之间二进制不相同的位数大于等于$d$就可以了。(怎么突然想到线性基 误)

从小到大枚举,然后依次与前面的数判断不相同的位数是否大于等于$d$,如果有一个数不满足,就不能把这个数加进去。

判断2个数的二进制不相同的位数,只需要将这两个数异或一下,再求异或的结果中有多少个1就可以了(异或就是那一位两个不相同就是1,相同就是0)。

 /*
ID: Starry21
LANG: C++
TASK: hamming
*/
#include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>
#include<queue>
using namespace std;
#define N 70
#define ll long long
#define INF 0x3f3f3f3f
int n,b,d;
int ans[N];
int bitcnt(int x)
{
int res=;
while(x)
{
x&=(x-);
res++;
}
return res;
}
int check(int x,int y)
{
int k=x^y;
return bitcnt(k);
}
int main()
{
//freopen("hamming.in","r",stdin);
//freopen("hamming.out","w",stdout);
scanf("%d %d %d",&n,&b,&d);
int k=,cnt=;
ans[]=;
while(cnt<n)
{
bool f=;
for(int i=;i<=cnt;i++)
if(check(ans[i],k)<d)
{
f=;
break;
}
if(!f) ans[++cnt]=k;
k++;
}
int t=,m=n;
while(m>=)
{
for(int i=t+;i<=t+;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[t+]);
t+=;
m-=;
}
if(m==) return ;//一定要注意这个东西!!!
for(int i=t+;i<n;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[n]);
return ;
}

Code

最新文章

  1. Ansible-playbook批量部署,更新war脚本,可以再完善----后续再update
  2. Xcode 升级成Xcode 8 版本以后,出现 Signing for &quot;sqlite3--test&quot; requires a development team. 问题的解决
  3. php CI框架nginx 配置
  4. 《Code Complete》ch.18 表驱动法
  5. Matlab中find函数的使用
  6. freemarker跳出循环
  7. linux环境 :Linux 共享库LIBRARY_PATH, LD_LIBRARY_PATH 与ld.so.conf
  8. JSON.stringify的三个参数(转载)
  9. 编辑器:IDE(深坑不填)
  10. _技巧_SublimeText_打开文件乱码解决
  11. Codeforces Round #396 (Div. 2) A. Mahmoud and Longest Uncommon Subsequence 水题
  12. 用Fiddler可以设置浏览器的UA 和 手动 --Chrome模拟手机浏览器(iOS/Android)的三种方法,亲测无误!
  13. Arrays类的分析及使用
  14. docker 私有仓库 harbor docker-compose
  15. jQuery学习-页面就绪函数
  16. ios笔记一 追加数据
  17. 获取和设置HTML标签中的数据
  18. python高级编程之列表推导式
  19. datatable的excel导入,其中有关于datatables的很多参数设置
  20. (转)Nginx图片服务器

热门文章

  1. 【HDU6703】array
  2. PM、RD、QA、OP、CM、EPG 英文缩写是什么意思?
  3. centos后台运行程序
  4. LINUX笔记之二常用命令(文件处理命令)
  5. GridView设置右键菜单
  6. 有时间看看这个方法 会不会 避免 xss
  7. [LOJ3124][CTS2019|CTSC2019]氪金手游:树形DP+概率DP+容斥原理
  8. Zookeeper入门(五)之Linux环境下Zookeeper安装
  9. C++入门经典-例2.10-控制输出精确度
  10. JS利用XMLHttpRequest拦截ajax请求