博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu-2209 翻纸牌游戏
阅读量:4286 次
发布时间:2019-05-27

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

 

题解:把所有的状态看成01二进制,状态压缩,比较简单的bfs+状态压缩

#include
#include
#include
#include
#include
using namespace std;#define M 1<<20+1bool vis[M];int l;struct node{ int st,move;};int bfs(int res){ memset(vis,false,sizeof(vis)); node p,q; queue
Q; p.move = 0;p.st = res; Q.push(p); while(!Q.empty()){ q = Q.front();Q.pop(); if(!q.st) return q.move; for(int i = 0;i < l;i++){ p = q; if(!i) p.st = p.st ^ 3;//翻转第一个,只影响第二个 else p.st = p.st ^ (7 <<(i-1));//中间翻转 p.st &= (1<
< l;i++) sum = sum * 2 + str[i] - '0'; int ans = bfs(sum); if(ans != -1) cout << ans << endl; else cout << "NO" << endl; } return 0;}

转载地址:http://mdsgi.baihongyu.com/

你可能感兴趣的文章
AJAX——核心XMLHttpRequest对象
查看>>
Java处理js输入特殊字符(如“+、@、¥”)
查看>>
Mysql注释
查看>>
MySQL(root用户)密码重置
查看>>
grant授权
查看>>
MySQL创建用户与授权方法
查看>>
MySql数据类型
查看>>
MySql简单sql使用
查看>>
"未能加载文件或程序集“MySql.Data, Version=6.9.3.0”或它的某一个依赖项。
查看>>
CodeFirst for MySql
查看>>
Code Frist for Mysql 实例
查看>>
Visual Studio 开源控件扩展 NuGet 常用命令及常用组件
查看>>
mysql局域网访问设置
查看>>
UEditor 编辑器跨域上传解决方法
查看>>
VisualSVN Server搭建SVN服务器
查看>>
AngularJs directive指令详解
查看>>
AngularJs directive-scope
查看>>
AngularJs directive-link实例
查看>>
Js实现Base64编码、解码
查看>>
AngularJs directive-scope双向绑定方法处理-实例2
查看>>