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/转 ...
随机推荐
- Linux中如何配置sudo用户
Linux中的sudo文件在/etc/sudoers,但不建议直接修改此文件: 可以在/etc/sudoers.d文件夹中新建文件,文件名随意,在文件中添加内容如下: 用户名 ALL=(ALL) AL ...
- Angular Reactive Form - 填充表单模型
setValue 使用setValue,可以通过传递其属性与FormGroup后面的表单模型完全匹配的数据对象来一次分配每个表单控件值. 在分配任何表单控件值之前,setValue方法会彻底检查数据对 ...
- C++中在子类实现父类的方法调用
- Java并发案例03---生产者消费者问题02
生产者消费者第二种情形 package com.maple.msb.one; public class ProducerConsumer { public static void main(Strin ...
- 一句话解释:C2C / B2C / O2O / B2B
C2C (Customers To Customers):个人到个人,就是我卖东西你来买B2C (Business To Customers):公司到个人,就是我成立个公司卖东西,你来买O2O (On ...
- BZOJ4987:Tree(树形DP)
Description 从前有棵树. 找出K个点A1,A2,…,Ak. 使得∑dis(AiAi+1),(1<=i<=K-1)最小. Input 第一行两个正整数n,k,表示数的顶点数和需要 ...
- P2986 [USACO10MAR]伟大的奶牛聚集Great Cow Gat…
题目描述 Bessie is planning the annual Great Cow Gathering for cows all across the country and, of cours ...
- Presentation 常用的承接句——技术分享、学术报告串联全场不尴尬
前言 现在即使是搞技术,做科研的,也需要在不同的场合,用ppt来做分享,做汇报,做总结. 如果国际会议,研讨会,或者在外企,国外工作,英文的presentation就更加必不可少.英语的提升需要大家从 ...
- 404 Note Found 队-Alpha9
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...
- js尾巴
js中根据id获取标签: /** * 根据id获取标签 * @param {string}id * @returns {object} */ function $(id) { return typeo ...