zoukankan      html  css  js  c++  java
  • Poj 1753 Flip Game 状态压缩 + DFS

    暴力枚举

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstdio>
     4 #include <cstring>
     5 #include <cstdlib>
     6 #include <cmath>
     7 
     8 using namespace std;
     9 
    10 char c;
    11 
    12 int m,t;
    13 
    14 int sum = 999999;
    15 
    16 void search(int site,int sta,int ans)
    17 {
    18     if(sta == 0 || sta == 65535)
    19     {
    20         if(ans < sum)
    21         {
    22             sum = ans;
    23         }
    24         return ;
    25     }
    26     else if(sta == m && ans != 0)
    27     {
    28         return;
    29     }
    30 
    31     if(site >= 17)
    32         return;
    33 
    34     search(site+1,sta,ans);//当前棋子不改变
    35 
    36     sta ^= (1 << (site-1));//center
    37 
    38     if(site%4 != 0)
    39         sta ^= (1 << (site)); //right
    40 
    41     if(site%4 != 1)
    42         sta ^= (1 << (site-2)); // left
    43 
    44     if(site >= 5)
    45         sta ^= (1 << (site-5)); //up
    46 
    47     if(site <= 12)
    48         sta ^= (1 << (site+3)); //down
    49 
    50     search(site+1,sta,ans+1);//改变当前棋子后继续枚举
    51 }
    52 
    53 int main()
    54 {
    55     int i,j;
    56 
    57     char s[10];
    58 
    59     sum = 999999;
    60     
    61     for(m = 0,t = 1,i = 0;i < 4; i++)
    62     {
    63         scanf("%s",s);
    64         for(j = 0;j < 4; j++)
    65         {
    66             if(s[j] == 'b')
    67                 m += t;
    68             t *= 2;
    69         }
    70 
    71     }
    72 
    73     search(1,m,0);
    74 
    75     if(sum != 999999)
    76         cout<<sum<<endl;
    77     else cout<<"Impossible"<<endl;
    78 
    79     return 0;
    80 }
  • 相关阅读:
    P2622 关灯问题II(关灯问题)
    P1140 相似基因
    Choose and Divide UVa 10375
    Disgruntled Judge UVA
    Color Length UVA
    P1052 过河
    P1026 统计单词个数
    Balanced Number HDU
    The SetStack Computer UVA
    Urban Elevations UVA
  • 原文地址:https://www.cnblogs.com/zmx354/p/3223865.html
Copyright © 2011-2022 走看看