博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JZYZOJ1383 [usaco2003feb]impster 位运算 最短路
阅读量:5166 次
发布时间:2019-06-13

本文共 1139 字,大约阅读时间需要 3 分钟。

 找能到达某个状态的最小操作数,然后把所有状态扫一遍即可,要额外判定一下起始就有的状态(如果起始里没有0那么这些状态应该起始是2(异或同一个数)),写博客的时候才意识到我的这个代码是有问题的,最开始应该把所有的状态都判定一边啊…不想改了就这样好了,OJ数据真水
代码
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 const int maxn=1<<17; 9 int n,m;10 char ch[110][20]={};11 int a[110]={};12 int f[maxn]={};13 int wtf1=0,wtf2=0;14 queue
q;15 int main(){16 scanf("%d%d",&n,&m);17 for(int i=0;i<=m;i++){18 scanf("%s",&ch[i]);19 int z=1;20 for(int j=n-1;j>=0;j--){21 a[i]+=z*(int)(ch[i][j]-'0');22 z*=2;23 }24 if(i!=0&&a[i]==a[0]){25 m--;i--;wtf1=1;wtf2=a[i];26 }27 }28 memset(f,63,sizeof(f));int ww=f[1];29 for(int i=1;i<=m;i++)f[a[i]]=0,q.push(a[i]);30 while(!q.empty()){31 int x=q.front();q.pop();32 for(int i=1;i<=m;i++){33 int y=x^a[i];34 if(f[y]>f[x]+1){35 f[y]=f[x]+1;36 q.push(x^a[i]);37 }38 }39 }int ma=(1<
2||ans>0)){id=2;x=a[0];}53 printf("%d\n",id);54 int z;55 for(int i=n-1;i>=0;i--){56 z=1<
View Code

 

转载于:https://www.cnblogs.com/137shoebills/p/7787044.html

你可能感兴趣的文章
常用Dockerfile举例
查看>>
jquery的ajax用法
查看>>
设计模式-策略模式(Strategy)
查看>>
django orm 数据查询详解
查看>>
JarvisOJ Basic 熟悉的声音
查看>>
C# list导出Excel(二)
查看>>
CAS 单点登录模块学习
查看>>
跟着辛星用PHP的反射机制来实现插件
查看>>
Android应用开发-网络编程①
查看>>
input中的name,value以及label中的for
查看>>
静态库制作-混编(工程是oc为基础)
查看>>
jQuery 显示加载更多
查看>>
代理模式
查看>>
Confluence 6 系统运行信息中的 JVM 内存使用情况
查看>>
Confluence 6 升级以后
查看>>
用JS实现版面拖拽效果
查看>>
二丶CSS
查看>>
《avascript 高级程序设计(第三版)》 ---第二章 在HTML中使用Javascript
查看>>
JS一些概念知识及参考链接
查看>>
TCP/IP协议原理与应用笔记24:网际协议(IP)之 IP协议的简介
查看>>