弱弱的搜索题,

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

 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. 376. Wiggle Subsequence

    A sequence of numbers is called a wiggle sequence if the differences between successive numbers stri ...

  2. How to: Reading an ini config file from a batch file

    Original Link: http://almanachackers.com/blog/2009/12/31/reading-an-ini-config-file-from-a-batch-fil ...

  3. Where does Windows store MSI files for uninstallation?

    Original link: Where does Windows store MSI files for uninstallation? Following content are only use ...

  4. LevelDb原理剖析

    在说LevelDb之前,先认识两位大牛,Jeff Dean和Sanjay Ghemawat,这两位是Google公司重量级的工程师,为数甚少的Google Fellow之二. Jeff Dean其人: ...

  5. thinkcmf thinkphp隐藏后台地址

    做了一个项目,上线的时候 需要隐藏掉domain.com/admin 这个后台地址,但是用的thinkcmf已经预定义好了admin模块. 我们可以用thinkphp自带的模块映射功能实现, 比方说我 ...

  6. jQuery—一些常见方法(2)DOM操作【insertBefore(),insertAfter(),appendTo(),prependTo(),before(),after(),append(),prepend(),remove(),on(),off(),scrollTop()】

    一.insertBefore() 如下代码:找到span标签,将span标签剪切到div的前面 <!DOCTYPE html> <html lang="en"&g ...

  7. easyui 初体验

    简介 jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编写复杂的javas ...

  8. 升级iOS10后SearchController焦点无法获取的问题

    原来在没升级之前,是这样获取的,好使 - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.sea ...

  9. POJ1384完全背包问题

    题目大意:给你一个储蓄罐空的,和满的重量,然后给出各种硬币的价值和对应的重量,要你估计出储蓄罐里面硬币价值和最小为多少,注意要保证重量和恰好为给出满的重量解题思路:完全背包问题,只是求最小值,注意初始 ...

  10. web页面显示折叠树菜单笔记

    zTree -- jQuery 树插件 http://pan.baidu.com/s/1skwh94h