zoukankan      html  css  js  c++  java
  • poj3185//BFS随便切...

    //poj 3185 
    2 //利用bit,通过位运算切换状态 ,然后BFS一下,轻易水过。 
    3 //说完好像很简单。。。是的,简单是简单,弱第一次以这种位运算姿势过题,太劲。膜思路 ORZ...  
    4 
    5 #include<iostream> 
    6 #include<string.h> 
    7 #include<set> 
    8 #include<queue> 
    9 #include<sstream> 
    10 using namespace std; 
    11 
    
    12 bool vis[1<<21]; 
    13 int step[1<<21]; 
    14 int q[100000000]; 
    15 int head,tail; 
    16 
    
    17 int BFS(int x) 
    18 { 
    19  memset(vis,0,sizeof(vis)); 
    20  vis[x]=1; 
    21  head=0;tail=1; 
    22  q[head]=x; 
    23  step[x]=0; 
    24  while(head<tail) 
    25  { 
    26      int u=q[head];head++; 
    27      if(u==0) 
    28          return step[u]; 
    29      for(int i=1;i<19;i++) 
    30      { 
    31          int r=u; 
    32          r^=(1<<i-1)|(1<<i)|(1<<i+1); 
    33          if(!vis[r]) 
    34          { 
    35              vis[r]=1; 
    36              step[r]=step[u]+1; 
    37              if(r==0) return step[r]; 
    38              q[tail++]=r; 
    39          } 
    40      } 
    41      int r; 
    42      r=u^(1<<0)^(1<<1); 
    43      if(!vis[r]) 
    44      {        
    45          vis[r]=1; 
    46          step[r]=step[u]+1; 
    47          if(r==0) return step[r]; 
    48          q[tail++]=r; 
    49      } 
    50      r=u^(1<<18)^(1<<19); 
    51      if(!vis[r])  
    52      { 
    53          vis[r]=1; 
    54          step[r]=step[u]+1; 
    55          if(r==0) return step[r]; 
    56          q[tail++]=r; 
    57      } 
    58  } 
    59  return -1; 
    60   
    61 } 
    62 
    
    63 int main() 
    64 { 
    65  int ans=0;       
    66  int x; 
    67  for(int i=0;i<20;i++) 
    68  { 
    69      scanf("%d",&x); 
    70      ans|=(x<<i); 
    71  } 
    72  printf("%d
    ",BFS(ans)); 
    73  return 0; 
    74 } 
  • 相关阅读:
    关于权限控制
    关于<!DOCTYPE>
    Oracle恢复目录的管理使用简要
    绑定变量介绍
    重做日志时间戳说明
    UNDO表空间监控说明
    Oracle rac进阶管理专家指导系列文档
    延迟块清除介绍
    ORA12500内存耗尽一例
    undo自动调优介绍
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/5934528.html
Copyright © 2011-2022 走看看