上传网站需要什么软件,西部网站管理助手 伪静态,重庆100强企业名单,wordpress如何对接微博难度#xff1a;普及-
题目描述
你所在城市的街道好像一个棋盘#xff0c;有 a 条南北方向的街道和 b 条东西方向的街道。南北方向的 a 条街道从西到东依次编号为 1 到 a#xff0c;而东西方向的 b 条街道从南到北依次编号为 1 到 b#xff0c;南北方向的街道 i 和东西方…难度普及-
题目描述
你所在城市的街道好像一个棋盘有 a 条南北方向的街道和 b 条东西方向的街道。南北方向的 a 条街道从西到东依次编号为 1 到 a而东西方向的 b 条街道从南到北依次编号为 1 到 b南北方向的街道 i 和东西方向的街道 j 的交点记为 (i,j)。
你住在 (1,1) 处而学校在 (a,b) 处你骑自行车去上学自行车只能沿着街道走而且为了缩短时间只允许沿着向东和北的方向行驶。
现在有 N 个交叉路口在施工 (X1,Y1)、(X2,Y2)……(Xn,Yn)这些路口是不能通车的。
问你上学一共有多少走法?
输入格式
第一行包含两个整数 a 和 b并且满足 1≤a,b≤16。
第二行包含一个整数 N表示有 N 个路口在维修 (1≤N≤40)。
接下来 N 行每行两个整数 Xi,Yi描述路口的位置。
输出格式
输出一个整数表示从 (1,1) 到 (a,b) 的行车路线总数。
输入输出样例
输入 #1 5 4
3
2 2
2 3
4 2 输出 #1 5 说明/提示
【样例解释】 思路
典型的dfs搜索。 完整代码
#includebits/stdc.h
using namespace std;
int s[20][20];
int ans,a,b,n;
int x1,x2;
void dfs(int x,int y){int i;if (xayb){ans;return;}elseif (s[x][y]!-1){dfs(x,y1);dfs(x1,y);}
}
int main(){cinab;cinn;//freopen(a.in,r,stdin);for (int i1;in;i){cinx1x2;//feropen(b.in,r,stdout);s[x1][x2]-1;}for (int i1;ia;i)s[i][b1]-1;for (int i1;ib;i)s[a1][i]-1;dfs(1,1);coutans;//freopen(c.out,w,stdout);return 0;
}