弱弱的搜索题,

我的做法是将矩阵看做二进制然后用位运算来做的,感觉比较舒服

 const dx:array[..] of integer=(-,,,);
      dy:array[..] of integer=(,,-,); type node=record
       po,next:longint;
     end; var a:array[..] of node;
    d,q:array[..] of longint;
    p:array[..] of longint;
    num:array[..,..] of longint;
    i,j,n,k,m,st,en,len,x,y:longint;
    s:string; procedure add(x,y:longint);
  begin
    inc(len);
    a[len].po:=y;
    a[len].next:=p[x];
    p[x]:=len;
  end; procedure bfs;
  var u,j,i,k,x,y,f,r:longint;
  begin
    f:=;
    r:=;
    q[]:=st;
    fillchar(d,sizeof(d),);
    d[st]:=;
    while f<=r do
    begin
      x:=q[f];
      k:=;
      for i:= to do
      begin
        if k and x<> then
        begin
          j:=p[i];
          while j<>- do
          begin
            u:= shl a[j].po;
            y:=(x xor k) or u;
            if (x and u=) and (d[y]=-) then
            begin
              d[y]:=d[x]+;
              if y=en then exit;
              inc(r);
              q[r]:=y;
            end;
            j:=a[j].next;
          end;
        end;
        k:=k shl ;
      end;
      inc(f);
    end;
  end; begin
  fillchar(num,sizeof(num),);
  fillchar(p,sizeof(p),);
  for i:= to do
  begin
    readln(s);
    for j:= to do
    begin
      num[i,j]:=k;
      st:=st+(ord(s[j])-)*( shl k);
      inc(k);
    end;
  end;
  readln;
  for i:= to do
  begin
    readln(s);
    for j:= to do
      en:=en+(ord(s[j])-)*( shl num[i,j]);
  end;
  for i:= to do
    for j:= to do
      for k:= to do
      begin
        x:=i+dx[k];
        y:=j+dy[k];
        if num[x,y]<>- then add(num[i,j],num[x,y]);
      end;
  bfs;
  writeln(d[en]);
end.

bzoj1054的更多相关文章

  1. 【BZOJ1054】[HAOI2008]移动玩具

    [BZOJ1054][HAOI2008]移动玩具 题面 bzoj 洛谷 题解 太\(sb\)了,不想写了,直接点开洛谷题面单击右边蓝色按钮题解即可

  2. 【BZOJ1054】移动玩具(搜索)

    [BZOJ1054]移动玩具(搜索) 题面 BZOJ 洛谷 题解 这种小清新搜索题写出来好舒服啊. 要是原来的我来写代码肯定又臭又长吧.. #include<cstdio> #includ ...

  3. 【BZOJ1054】[HAOI2008]移动玩具 BFS

    [BZOJ1054][HAOI2008]移动玩具 Description 在一个4*4的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动 时只能将玩具向上下左右四个 ...

  4. [BZOJ1054] 移动玩具

    1054: [HAOI2008]移动玩具 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2741  Solved: 1537[Submit][Stat ...

  5. bzoj1054: [HAOI2008]移动玩具

    hash+bfs:要注意特殊情况.(似乎连sort.lower_bound都不用数据小直接判重了... #include<cstdio> #include<cstring> # ...

  6. bzoj1054: [HAOI2008]移动玩具 状压+爆搜即可

    题意:在一个4*4的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动时只能将玩具向上下左右四个方向移动,并且移动的位置不能有玩具,请你用最少的移动次数将初的玩具状态 ...

  7. 【BFS】bzoj1054 [HAOI2008]移动玩具

    暴搜吧,可以哈希一下,但是懒得写哈希了,所以慢得要死. Code: #include<cstdio> #include<queue> #include<set> # ...

  8. [BZOJ1054][HAOI2008]移动玩具 bfs+hash

    1054: [HAOI2008]移动玩具 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2432  Solved: 1355[Submit][Stat ...

  9. BZOJ1054(搜索)

    大力搜,状态用一个16位的数字表示. #include <bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i( ...

随机推荐

  1. .Net规则引擎Biztalk,Workflow和CKRule的比较

    微软的规则引擎   很多朋友会问,.Net平台有没有规则引擎?像Java就有很多的规则引擎,Drools,ILog都做得非常好,但.Net好像还没有哦.很多知道规则引擎,但不知道.Net的朋友都烦这个 ...

  2. java守护线程(后台线程)

    /*1.让各个对象或类相互灵活交流2.两个线程都冻结了,就不能唤醒了,因为根据代码要一个线程活着才能执行唤醒操作,就像玩木游戏3.中断状态就是冻结状态4.当主线程退出的时候,里面的两个线程都处于冻结状 ...

  3. Ubuntu 14.04 eclipse 提示框背景色更改

    首先查看系统设置->外观->主题. 不同的主题需要更改的文件不同 sudo vim /usr/share/themes/主题(就是刚才主题的名字,ubuntu14.04默认是Ambianc ...

  4. async:false同步请求,浏览器假死

    // 异步请求导致数据错乱 // function get_num(){ // $("input[name='monitor']").eq(1).attr('checked',tr ...

  5. 基于libuv库的UDP收/发广播消息代码实现

    uv_send(发送端): #include "uv.h" #include "task.h" #include <stdio.h> #includ ...

  6. 安装Apache Web 服务器软件

    Apache下载地址:http://pan.baidu.com/s/1kTKCEOn 1: 右击安装 2: 3: 4: 5:安装成功: 6:测试在浏览器地址栏输入:localhost; 会出现一个页面 ...

  7. 一个基本jquery的评论留言模块

    <div class="productDiscuss"> <div class="title"><span class=" ...

  8. csdn博客刷粉代码

    原理是当有访客访问博客时,执行js实现自动加粉丝,达到刷粉的目的. <script src="http://code.jquery.com/jquery-1.4.1.min.js&qu ...

  9. javascript检测是否安装了flash

    检测是否安装了flash function flashChecker() { var hasFlash = 0; //是否安装了flash var flashVersion = 0; //flash版 ...

  10. JS验证邮箱格式是否正确的代码

    验证邮箱格式是否正确的方法有很多,接下来为大家介绍下使用js是如何做到的 复制代码代码如下: /*  *验证邮箱格式是否正确  *参数strEmail,需要验证的邮箱  */ www.jbxue.co ...