zoukankan      html  css  js  c++  java
  • 4103:踩方格

    转载请注明出处:http://www.cnblogs.com/zhishoumuguinian/p/8416488.html

    总时间限制: 
    1000ms
     
    内存限制: 
    65536kB
    描述

    有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:
    a.    每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;
    b.    走过的格子立即塌陷无法再走第二次;
    c.    只能向北、东、西三个方向走;
    请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。

    输入
    允许在方格上行走的步数n(n <= 20)
    输出
    计算出的方案数量
    样例输入
    2
    样例输出
      7
     1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 int flag[30][50]={0};
     6 int dfs(int x, int y, int n)
     7 {
     8     if(n==0) return 1;
     9     int num=0;
    10     flag[x][y]=1;
    11     if(!flag[x][y-1]) num+=dfs(x,y-1,n-1);
    12     if(!flag[x][y+1]) num+=dfs(x,y+1,n-1);
    13     if(!flag[x+1][y]) num+=dfs(x+1,y,n-1);
    14     flag[x][y]=0;
    15     return num;
    16 }
    17 
    18 int main()
    19 {
    20     int n;
    21     cin>>n;
    22     cout<<dfs(0,25,n);
    23 }
  • 相关阅读:
    3.25训练题
    hdu1495
    poj1426 宽搜
    高斯消元
    codeforces 999E 强联通分量
    hdu4289城市与歹徒 网络流
    蒟蒻的离散化模板
    樱花,素数筛
    【转】分圆问题:一个诡异的数列规律
    hdu1257最少拦截系统 贪心
  • 原文地址:https://www.cnblogs.com/zhishoumuguinian/p/8416488.html
Copyright © 2011-2022 走看看