给定 k 种移动方式:从 (i, j) 移动到 (i + xk, j + yk)(xk, yk > 0)。询问在一个 n ∗ m 的矩阵中,
从 (1, 1) 出发,可以到达多少个位置。
Input
第一行包含三个整数 n,m 和 k。
之后 k 行每行包含两个 xi 和 yi。
Output
共一行包含一个整数 ans,表示可以到达的位置个数。
随意的模拟。。。
#include<cstdio>
#include<iostream>
using namespace std;
int n,m,k,a,b,x,y,ans[101][101],Ans;
int main(){
scanf("%d%d%d",&n,&m,&k);
ans[1][1]=1;
while(k--){
scanf("%d%d",&a,&b);
for(int i=a+1;i<=n;++i)
for(int j=b+1;j<=m;++j)
ans[i][j]=max(ans[i][j],ans[i-a][j-b]);
}
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
Ans+=ans[i][j];
printf("%d",Ans);
}