zoukankan      html  css  js  c++  java
  • 征战蓝桥 —— 2017年第八届 —— C/C++A组第4题——方格分割

    题目

    6x6的方格,沿着格子的边线剪开成两部分。
    要求这两部分的形状完全相同。

    如图:p1.png, p2.png, p3.png 就是可行的分割法。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    试计算:
    包括这3种分法在内,一共有多少种不同的分割方法。
    注意:旋转对称的属于同一种分割法。

    请提交该整数,不要填写任何多余的内容或说明文字。

    代码

    #include <iostream>
    using namespace std;
    
    int dire[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
    int visited[7][7],ans;
    void dfs(int x,int y)
    {
    	if(x==0||y==0||x==6||y==6)
    	{
    		ans++;
    		return ;
    	}
    	visited[x][y]=1;
    	visited[6-x][6-y]=1;
    	for(int k=0;k<4;k++)
    	{
    		int nx=x+dire[k][0];
    		int ny=y+dire[k][1];
    		if(nx<0||nx>6||ny<0||ny>6) continue;
    		if(!visited[nx][ny]) dfs(nx,ny);
    	}
    	visited[x][y]=0;
    	visited[6-x][6-y]=0;
    }
    int main()
    {
    	dfs(3,3);
    	cout<<ans/4<<endl;
    	return 0;
    }
    
  • 相关阅读:
    之前总结的,现在要找工作了,给大家分享一下
    numpy总结
    django知识分支_1
    Django小总结
    ORM
    百度在线编辑器 配置修改
    百度在线编辑器
    TP5 路由使用
    cache 订单队列
    绘制静态地图API-高德地图
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12338594.html
Copyright © 2011-2022 走看看