BZOJ054_移动玩具_KEY
这道题我写IDA*写挂了,TLE+WA,只AC了两个点。
这道题标算BFS+状态压缩。
code:
/**************************************************************
Problem: 1054
User: yekehe
Language: C++
Result: Accepted
Time:84 ms
Memory:40864 kb
****************************************************************/ #include <bits/stdc++.h>
using namespace std; int N,T; const int dx[]={,,,-},dy[]={,,-,}; int l[],h,t;
int f[<<]; void BFS()
{
memset(f,,sizeof f);
l[++t]=N;
f[N]=;
while(h<t){
int front=l[++h];
if(front==T){printf("%d",f[front]);return ;}
for(int i=;i<;i++){
if((front&(<<i))!=(front&(<<i+))){
int to=front;
to^=(<<i)+(<<i+);
if(f[to]>f[front]+)f[to]=f[front]+,l[++t]=to;
}
if(i!= && (front&(<<i))!=(front&(<<i+))){
int to=front;
to^=(<<i)+(<<i+);
if(f[to]>f[front]+)f[to]=f[front]+,l[++t]=to;
}
}
for(int i=;i<;i++){
if((front&(<<i))!=(front&(<<i+))){
int to=front;
to^=(<<i)+(<<i+);
if(f[to]>f[front]+)f[to]=f[front]+,l[++t]=to;
}
if(i!= && (front&(<<i))!=(front&(<<i+))){
int to=front;
to^=(<<i)+(<<i+);
if(f[to]>f[front]+)f[to]=f[front]+,l[++t]=to;
}
}
for(int i=;i<;i++){
if((front&(<<i))!=(front&(<<i+))){
int to=front;
to^=(<<i)+(<<i+);
if(f[to]>f[front]+)f[to]=f[front]+,l[++t]=to;
}
if(i!= && (front&(<<i))!=(front&(<<i+))){
int to=front;
to^=(<<i)+(<<i+);
if(f[to]>f[front]+)f[to]=f[front]+,l[++t]=to;
}
}
for(int i=;i<;i++){
if(i!= && (front&(<<i))!=(front&(<<i+))){
int to=front;
to^=(<<i)+(<<i+);
if(f[to]>f[front]+)f[to]=f[front]+,l[++t]=to;
}
}
}
} int main()
{
string S;
for(int i=;i<=;i++){
cin>>S;
for(int j=;j<=;j++)N=(N<<)+S[j-]-'';
}//cin>>S;
for(int i=;i<=;i++){
cin>>S;
for(int j=;j<=;j++)T=(T<<)+S[j-]-'';
}
BFS();
return ;
}
BZOJ054_移动玩具_KEY的更多相关文章
- BZOJ 1010: [HNOI2008]玩具装箱toy [DP 斜率优化]
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 9812 Solved: 3978[Submit][St ...
- BZOJ1055: [HAOI2008]玩具取名[区间DP]
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1588 Solved: 925[Submit][Statu ...
- BZOJ1055: [HAOI2008]玩具取名
... #include<bits/stdc++.h> using namespace std; int q[255]; char s[205]; char p[]={'W','I','N ...
- Noip2016提高组 玩具谜题toy
Day 1 T1 题目大意 一些naive的玩具小人把小南的眼镜藏起来,但小南有一份too simple的小纸条,告诉小南眼镜在第一个小人往哪数第几个的往哪数的第几个的往哪数第几个的往哪数的第几个的往 ...
- BZOJ 1010 【HNOI2008】 玩具装箱toy
Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...
- 【BZOJ-1055】玩具取名 区间DP
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1560 Solved: 907[Submit][Statu ...
- 【BZOJ-1010】玩具装箱toy DP + 斜率优化
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 8432 Solved: 3338[Submit][St ...
- UOJ260 【NOIP2016】玩具谜题
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- BZOJ1010 [HNOI2008]玩具装箱toy
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
随机推荐
- css属性之flex属性
flex属性 规定了弹性元素如何伸长或缩短以适应flex容器中的可用空间.是一个简写属性,可以同时设置flex-grow, flex-shrink, flex-basis三个子属性. /* Basic ...
- js 调用 oc 的解释
JavaScriptCore NSInvocation js解释器在解释函数调用时,会在执行环境进行函数搜索,主调者类型判定: 如果是js调用,直接解释执行: 如果是oc调用,则将调用打包成NSInv ...
- Django中模型(二)
Django中模型(二) 三.定义模型 1.模型.属性.表.字段间的关系: 一个模型类在数据库中对应一张表:在模型类中定义的属性,对应该模型对照表中的字段. 2.定义属性 A.概述 ·django根据 ...
- 【ES6】最常用的es6特性(二)
1.for of 值遍历 for in 循环用于遍历数组,类数组或对象,ES6中新引入的for of循环功能相似,不同的是每次循环它提供的不是序号而是值. var someArray = [ &quo ...
- SublimeLinter插件对PHP语法检测不起作用的解决办法
系统:windows7+sublime3 1.安装sublimelinter ctrl+shift+p=>pi=>回车=>sublimelinter=>回车 2.安装好后进行配 ...
- PCA方法从原理到实现
一.简介 PCA(Principal Components Analysis)即主成分分析,是图像处理中经常用到的降维方法,大家知道,我们在处理有关数字图像处理方面的问题时,比如经常用的图像的查询问题 ...
- SSM(SpringMVC+Spring+Mybatis)框架学习理解
近期做到的项目中,用到的框架是SSM(SpringMVC+Spring+Mybatis).之前比较常见的是SSH.用到了自然得了解各部分的分工 spring mvc 是spring 处理web层请求的 ...
- [leetcode] 二叉树的前序,中序,后续,层次遍历
前序遍历 [144] Binary Tree Preorder Traversal 递归遍历 使用递归,先保存父节点的值,再对左子树进行遍历(递归),最后对右子树进行遍历(递归) vector< ...
- 模板——STL队列
C++ STL queue 容器优先队列&&队列 队列 #include<queue> #include<iostream> using namespace s ...
- docker之MySQL主从复制
MySQL主从复制 主服务器 配置文件目录 mkdir /var/lib/mysql/master/conf.d 数据存储目录 mkdir var/lib/mysql/master/data 配置my ...