zoukankan      html  css  js  c++  java
  • BZOJ1259:[CQOI2007]矩形rect(DFS)

    Description

    给一个a*b矩形,由a*b个单位正方形组成。你需要沿着网格线把它分成分空的两部分,每部分所有格子连通,且至少有一个格子在原矩形的边界上。“连通”是指任两个格子都可以通过水平或者竖直路径连在一起。 求方案总数。例如3*2的矩形有15种方案。

     

    Input

    输入仅一行,为两个整数a,b。
    1<=a<=6, 2<=b<=7

    Output

    输出仅一行,即方案总数。

    Sample Input

    3 2

    Sample Output

    15

    Solution

    爆搜分界线可过= =
    亏我以为有什么神奇的规律还找了半天

    Code

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 using namespace std;
     5 
     6 int dx[7]={0,1,0,-1,0},dy[7]={0,0,1,0,-1};
     7 int n,m,ans,vis[10][10];
     8 
     9 void Dfs(int x,int y)
    10 {
    11     if (x==0 || x==n || y==0 || y==m) ans++;
    12     else
    13     {
    14         vis[x][y]=true;
    15         for (int i=1; i<=4; ++i)
    16             if (!vis[x+dx[i]][y+dy[i]])
    17                 Dfs(x+dx[i],y+dy[i]);
    18         vis[x][y]=false;
    19     }
    20 }
    21 
    22 int main()
    23 {
    24     scanf("%d%d",&n,&m);
    25     for (int i=1; i<n; ++i)
    26     {
    27         memset(vis,false,sizeof(vis));
    28         vis[i][0]=true; Dfs(i,1);
    29     }
    30     for (int i=1; i<m; ++i)
    31     {
    32         memset(vis,false,sizeof(vis));
    33         vis[0][i]=true; Dfs(1,i);
    34     }
    35     printf("%d
    ",ans);
    36 }
  • 相关阅读:
    数据提交方式:post和get
    什么是SQL注入式攻击和如何防范?
    CSS3 @keyframes 规则
    php数据库连接及简单操作
    深入理解CSS过渡transition
    css 选择器
    利用border制作三角形原理
    iOS 8 自适应 Cell
    dSYM 文件分析工具
    iOS开发使用半透明模糊效果方法整理
  • 原文地址:https://www.cnblogs.com/refun/p/9806390.html
Copyright © 2011-2022 走看看