zoukankan      html  css  js  c++  java
  • 方格分割(dfs)

    //https://blog.csdn.net/ryo_218/article/details/79640235
    #include <iostream>
    #include <string>
    using namespace std;
    int num=0;int visit[7][7];
    int direct[4][2]={1,0,0,-1,-1,0,0,1};
    void dfs(int x,int y)
    {
        int i,dx,dy;
    	if(x==0 || x==6 || y==0 || y==6)//该点在边界上
    	{	num++;return ;}
    	
    	for(i=0;i<4;i++)
    	{
    		dx=x+direct[i][0];dy=y+direct[i][1];//注意此处dx,dy不能为x,y;不然下一方向就是依据更改过的(x,y)点
    		if(dx>-1 && dx<7 && dy>-1 && dy<7 && !visit[dx][dy])
    		{   visit[dx][dy]=1;visit[6-dx][6-dy]=1;
    		    dfs(dx,dy);
    		    visit[dx][dy]=0;visit[6-dx][6-dy]=0;
    		}
    	}		
    }
    
    void main()
    {
    	memset(visit,0,sizeof(visit));
    	visit[3][3]=1;
    	dfs(3,3);
    	cout<<(num+4)/8<<endl;//上下左右,另外还有对称,两个对角线没有左右对称故需要加4
    }
    

      

  • 相关阅读:
    PKU1008
    PKU 1007
    PKU 3983
    PKU 1005
    PKU1004
    PKU 1003解题
    new.target
    debugger 关键字
    React 高阶组件
    CSS|规范
  • 原文地址:https://www.cnblogs.com/ewitt/p/12174511.html
Copyright © 2011-2022 走看看