POJ 2133 暴搜
2024-08-31 16:06:18
题意:
思路:
按照题意暴搜
注意 如果目标串==给的串 答案是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;
}
}
最新文章
- chown命令
- c++ 普通高精乘
- InstallShield安装包中集成第三方安装包的方案选择[转]
- 它们偷偷干了啥?教你监督APP的运行
- 遇到Audio/Speech相关问题,如何抓取log
- JavaScript运行命令
- 【原】Unity Shader VS UDK Material Editor
- Servlet路径映射
- dede织梦怎么修改description的字数
- 老白关于rac性能调优的建议(10gRAC)
- Cordova配置与WebApp混合开发环境配置
- Kafka技术内幕 读书笔记之(五) 协调者——消费组状态机
- Problem D: 平面上的点——Point类 (IV)
- eclipse显示xml提示
- css3渐变 两边透明中间高亮
- FileItem类的常用方法(关于文件上传的)
- 系统安装-007 CentOS7yum源添加、删除及其yum优化(转)
- LeetCode 第 342 题(Power of Four)
- BLE CC2541 串口BootLoader 即 SBL BootLoader 资料 收集
- 记一次netty版本冲突,报java.lang.NoSuchMethodError: io.netty.util.internal.ObjectUtil.checkPositive的问题
热门文章
- Java类和对象6
- js之insertBefore(newElement,oldElement)
- linq replace with single call to FirstOrDefault 解决使用resharper产生的警告
- Unified BeginFrame scheduling for Chrome
- 通俗易懂的Git使用入门教程
- wall---向系统当前所有打开的终端上输出信息
- python通过sigar收集服务器信息
- 转载-- Qt Creator编译时make: arm-linux-g++: command not found 错误!
- MFC的执行过程分析
- assert 的理解