洛谷P4289 移动玩具 HAOI2008 搜索+状压
正解:状压
解题报告:
先,放下传送门QwQ
说真的我jio得这题不管是思路还是实现上,都还是有一定难度的?然后就看到神仙hl博客里一句"太水了不讲了"就过掉了,,,好的趴太强辽QAQ
但是这题我开始是真的没想到状压,,,知道状压之后实现代码实现了好久,,,看来灵巧是真的菜趴QAQ
然后就讲下这题QwQ
首先这题,一眼bfs板子题嘛,大体的框架应该都还是想得出来的
但是如果!你和sd灵巧想到了一个路子上!直接存的矩阵!你就可以获得10pts的好成绩,,,显然会MLE的啊喂!
然后就考虑,它不是只有01嘛,显然状压鸭!
然后照理来说就做完了
然而sd灵巧代码实现能力太差了,,,打了俩小时死活调不出来,,,就放弃了,拿的hl的代码改了下过的(但改动挺大的我jio得,比他代码好看多了2333333
然后另外注意一下还用了俩优化(不过似乎不用也能A?
一个是双向搜索,通过beg和tail实现的
另一个是显然的一个结论,就是对于俩俩交换你只用搜和左边交换和上边交换,和右和下的显然会被别的格子枚举到,就可以/2了(也没快多少的说QAQ
没了,放下代码就跑了!
#include<bits/stdc++.h>
using namespace std;
#define rg register
#define ll int
#define mp make_pair
#define rp(i,x,y) for(rg ll i=x;i<=y;++i)
#define my(i,x,y) for(rg ll i=x;i>=y;--i)
;
ll beg[N],tail[N],ans,temp[][],dx[]={,,},dy[]={,,},t1;
queue< ll > q;
inline ,)my(j,,){temp[i][j]=x&;x>>=;}}
inline ;rp(i,,)rp(j,,){ret<<=;ret|=temp[i][j];}return ret;}
inline && y< && x> && y>;}
inline int bfs(void)
{
while(!q.empty())
{
;frhash(now);q.pop();
rp(i,,)
rp(j,,)
rp(k,,)
if(jde(i+dx[k],j+dy[k]))
{
swap(temp[i][j],temp[i+dx[k]][j+dy[k]]);tp=tohash();
;
,q.push(tp);
,q.push(tp);
swap(temp[i][j],temp[i+dx[k]][j+dy[k]]);
}
}
}
int main()
{
rp(t,,)rp(i,,)scanf(;q.push(t1);
rp(t,,)rp(i,,)scanf(;q.push(t1);
cout<<bfs()<<endl;
;
}
洛谷P4289 移动玩具 HAOI2008 搜索+状压的更多相关文章
- 【题解】洛谷P2704 [NOI2001] 炮兵阵地(状压DP)
洛谷P2704:https://www.luogu.org/problemnew/show/P2704 思路 这道题一开始以为是什么基于状压的高端算法 没想到只是一道加了一行状态判断的状压DP而已 与 ...
- 【题解】洛谷P1896 [SCOI2005] 互不侵犯(状压DP)
洛谷P1896:https://www.luogu.org/problemnew/show/P1896 前言 这是一道状压DP的经典题 原来已经做过了 但是快要NOIP 复习一波 关于一些位运算的知识 ...
- 洛谷 P3825 [NOI2017]游戏 【2-SAT+状压】
UOJ和洛谷上能A,bzoj 8ms即WA,现在也不是知道为啥--因为我太弱了 先看数据范围发现d非常小,自然想到了状压. 所以先假装都是只能跑两种车的,这显然就是个2-SAT问题了:对于x场没有hx ...
- 洛谷 P2622 关灯问题II【状压DP;隐式图搜索】
题目描述 现有n盏灯,以及m个按钮.每个按钮可以同时控制这n盏灯--按下了第i个按钮,对于所有的灯都有一个效果.按下i按钮对于第j盏灯,是下面3中效果之一:如果a[i][j]为1,那么当这盏灯开了的时 ...
- 【题解】洛谷P1879 [USACO06NOV] Corn Fields(状压DP)
洛谷P1879:https://www.luogu.org/problemnew/show/P1879 思路 把题目翻译成人话 在n*m的棋盘 每个格子不是0就是1 1表示可以种 0表示不能种 相邻的 ...
- 洛谷 P7620 - CF1431J Zero-XOR Array(状压 dp)
洛谷题面传送门 首先显然题目等价于求有多少个长度 \(n-1\) 的序列 \(b\) 满足 \(a_i\le b_i\le a_{i+1}\),满足 \(b_1\oplus b_2\oplus\cdo ...
- 洛谷P1171 售货员的难题【状压DP】
题目描述 某乡有n个村庄(1 输入格式: 村庄数n和各村之间的路程(均是整数). 输出格式: 最短的路程. 输入样例: 3 0 2 1 1 0 2 2 1 0 输出样例 3 说明 输入解释 3 {村庄 ...
- 2018.07.18 洛谷P1171 售货员的难题(状压dp)
传送门 感觉是一道经典的状压dp,随便写了一发卡了卡常数开了个O(2)" role="presentation" style="position: relati ...
- 洛谷P2566 [SCOI2009]围豆豆(状压dp+计算几何)
题面 传送门 题解 首先要解决一个问题,就是怎么判断一个点是否在多边形内部 从这个点向某一个方向做一条射线,如果这条射线和多边形的交点为奇数说明在多边形内,否则在多边形外 然而有一些特殊情况,比方说一 ...
随机推荐
- sql 替换字符串
MSSQL替换语句: )),'abc.com','123.com') 例如: update PE_Article set Content=replace(cast(Content as varchar ...
- Linux 上安装oracle客户端
1. 下载安装包 http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html oracle-instantclient11 ...
- Popupwindow全屏问题
//sdk > 21 解决 标题栏没有办法遮罩的问题 popupWindow.setClippingEnabled(false);
- 说说UART(转)
串口协议基础 1 串口概述 串口由收发器组成.发送器是通过TxD引脚发送串行数据,接收器是通过RxD引脚接收串行数据.发送器和接收器都利用了一个移位寄存器,这个移位寄存器可以将数据进行“并转串”和“串 ...
- MySql数据库设计表添加字段
当要添加的字段属于整型,需要设置默认值 或者: alter table fp_user_base add hasPwd tinyint(4) not null default 0;
- Android Studio Error:Connection timed out: connect.解决方案
遇到了这样的错误: Error:Connection timed out: connect. If you are behind an HTTP proxy, please configure the ...
- IOS多线程之序
版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们开发的应用基本上都是多线程的,几乎没有不是多线程的应用发布在appstore.首先我们的应用启动会默认有一个主线程,你一直在里面执行很多操作 ...
- 三个 CSS 预处理器(框架):Sass、LESS 和 Stylus
CSS 预处理器技术已经非常的成熟,而且也涌现出了越来越多的 CSS 的预处理器框架.本文向你介绍使用最为普遍的三款 CSS 预处理器框架,分别是 Sass.Less CSS.Stylus. 首先我们 ...
- canvas练习 - 圆
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Root用户安装MariaDB到 /usr/local/mysql
参考地址: http://www.zhdba.com/mysqlops/2013/08/16/mariadb-cn_1001/ https://mariadb.com/kb/en/mariadb/in ...