• codevs2693 上学路线(施工)


    难度等级:黄金

    2693 上学路线(施工)

    题目描述 Description

    问题描述

     你所在的城市街道好像一个棋盘,有a条南北方向的街道和b条东西方向的街道。

       南北方向a条街道从西到东依次编号为1到a,而东西方向的b条街道从南到北依次编号为1到b,南北方向的街道i和东西方向的街道j的交点记为(i,j)。

       假定你住在(1,1)处,而学校在(a,b)处,你骑自行车去上学,自行车只能沿着街道走,而且为了缩短时间只允许沿着东、北方向行驶。

       现在有n个交叉路口在施工(X1,Y1),(X2,Y2),(Xn,Yn),这些路口暂时不能通车。问你上学有多少种走法?

    输入描述 Input Description

      共二行。

      第一行包含两个整数a和b,并且满足1<=a,b<=16.

      第二行包含一个整数n,表示有n个路口在维修(1<=N<=40)。

      接下来的n行,每行两个整数X_i、Y_i,描述路口的位置。

    输出描述 Output Description

    输出一个整数表示从(1,1)到(a,b)的骑车路线总数。

       只有一行

    样例输入 Sample Input

    5 4

    3

    2 2

    2 3

    4 2

    样例输出 Sample Output

    5

    #include<iostream>
    using namespace std;
    int a,b,c,s;
    bool v[20][20];
    void dfs(int x,int y)
    {
        if(x==a&&y==b) 
        {
            s++;
            return ;
        }
        if(x<a&&!v[x+1][y]) dfs(x+1,y);//往北
        if(y<b&&!v[x][y+1]) dfs(x,y+1);//往东
    }
    int main()
    {
        cin>>a>>b>>c;
        for(int i=1;i<=c;i++)
        {
            int x,y;
            cin>>x>>y;
            v[x][y]=true;//true代表正在施工
        }
        dfs(1,1);
        cout<<s;
    }
  • 相关阅读:
    .Net -- NLog日志框架配置与使用
    Prism -- 简介
    Prism.WPF -- Prism框架使用(下)
    Prism.WPF -- Prism框架使用(上)
    Win32Api -- 关闭当前应用
    WPF -- 一种圆形识别方案
    C#语言特性及发展史
    WPF -- 一种实现本地化的方法
    DEV中右键菜单如何只在非空单元格上显示?
    打开一个窗体,其他窗体处于不可编辑状态
  • 原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/6160032.html
Copyright © 2020-2023  润新知