zoukankan      html  css  js  c++  java
  • poj1753Flip Game(dfs)

    Flip Game  思想很不成熟,

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    int map[4][4];
    int ans=100;

    int f()
    {
        for(int i=0;i<4;i++)
        {
            for(int j=0;j<4;j++)
                if(map[i][j]!=map[0][0])
                  return 0;

        }
         return 1;
    }

    void fan1(int x,int y)
    {
        if(x>=0&&x<4&&y>=0&&y<4)
            map[x][y]=!map[x][y];
    }
    void fan(int x,int y)
    {
        fan1(x,y);
        fan1(x-1,y);
        fan1(x+1,y);
        fan1(x,y-1);
        fan1(x,y+1);
    }
    void dfs(int x,int y,int b)
    {
        if(f())
        {
            if(b<ans)
            {
                ans=b;
                return ;
            }
        }
        if(x>=4||y>=4) return ;
        int xx=(x+1)%4;
        int yy=y+(x+1)/4;
        dfs(xx,yy,b);//入栈
        fan(x,y);
        dfs(xx,yy,b+1);
        fan(x,y);
    }
    int main()
    {
        char ch;
        for(int i=0;i<4;i++)
        {
            for(int j=0;j<4;j++)
            {
              scanf("%c",&ch);
              if(ch=='b')
                map[i][j]=0;
              else map[i][j]=1;
            }
            getchar();
        }
        dfs(0,0,0);
        if (ans != 100)
            printf ("%d ",ans);
        else
            printf ("Impossible ");
        return 0;
    }

  • 相关阅读:
    C# extern关键字的用法
    C#自定义集合类(二)
    C#自定义集合类(一)
    LINQ中交集、并集、差集、去重(十四)
    LINQ中转换操作符(十三)
    Oracle实现连乘和求和
    适配器模式
    HTTP网络协议与手写Web服务容器
    代理模式
    设计模式的几条家规
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/3788603.html
Copyright © 2011-2022 走看看