题意:



思路:

按照题意暴搜

注意 如果目标串==给的串 答案是2

//By SiriurRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,k,goal,a[1005],head,tail,q[1000000],vis[1<<16],minn[17],rec[17];
char p;
int main(){
memset(minn,0x3f,sizeof(minn));
scanf("%d%d",&k,&n),getchar();
for(int i=1;i<=k;i++)p=getchar(),goal=goal*2+p-'0';
for(int i=1;i<=n;i++){
getchar();
for(int j=1;j<=k;j++)
a[i]=a[i]*2+getchar()-'0';
q[tail++]=a[i];
}
while(head<tail){
int t=q[head++];
for(int i=1;i<=n;i++)
if(!vis[t^a[i]])
vis[t^a[i]]=vis[t]+1,q[tail++]=t^a[i];
}
for(int i=0;i<(1<<k);i++){
if(!vis[i])continue;
int jy=i^goal,temp=0;
for(int j=0;j<k;j++)if(jy&(1<<j))temp++;
if(minn[temp]>vis[i])minn[temp]=vis[i],rec[temp]=i;
else if(minn[temp]==vis[i])rec[temp]=min(rec[temp],i);
}
for(int i=0;i<=k;i++)
if(minn[i]<=0x3ffffff){
printf("%d\n",minn[i]);
for(int j=k-1;j>=0;j--)
printf("%d",rec[i]&(1<<j)?1:0);
return 0;
}
}

最新文章

  1. chown命令
  2. c++ 普通高精乘
  3. InstallShield安装包中集成第三方安装包的方案选择[转]
  4. 它们偷偷干了啥?教你监督APP的运行
  5. 遇到Audio/Speech相关问题,如何抓取log
  6. JavaScript运行命令
  7. 【原】Unity Shader VS UDK Material Editor
  8. Servlet路径映射
  9. dede织梦怎么修改description的字数
  10. 老白关于rac性能调优的建议(10gRAC)
  11. Cordova配置与WebApp混合开发环境配置
  12. Kafka技术内幕 读书笔记之(五) 协调者——消费组状态机
  13. Problem D: 平面上的点——Point类 (IV)
  14. eclipse显示xml提示
  15. css3渐变 两边透明中间高亮
  16. FileItem类的常用方法(关于文件上传的)
  17. 系统安装-007 CentOS7yum源添加、删除及其yum优化(转)
  18. LeetCode 第 342 题(Power of Four)
  19. BLE CC2541 串口BootLoader 即 SBL BootLoader 资料 收集
  20. 记一次netty版本冲突,报java.lang.NoSuchMethodError: io.netty.util.internal.ObjectUtil.checkPositive的问题

热门文章

  1. Java类和对象6
  2. js之insertBefore(newElement,oldElement)
  3. linq replace with single call to FirstOrDefault 解决使用resharper产生的警告
  4. Unified BeginFrame scheduling for Chrome
  5. 通俗易懂的Git使用入门教程
  6. wall---向系统当前所有打开的终端上输出信息
  7. python通过sigar收集服务器信息
  8. 转载-- Qt Creator编译时make: arm-linux-g++: command not found 错误!
  9. MFC的执行过程分析
  10. assert 的理解