摸底测试#1
T1-咕咕
直接 \(dp\),转移时注意限制即可。
点击查看代码
signed main(){n=read(),m=read(),t=read();while(t--){int a=read(),b=read(),c=read(),d=read();bool flag=0;if(a==n&&b==m)continue;if((c==a+1&&d==b)||(d==b+1&&a==c))flag=1;if(!flag||f[a][b]==-1){f[a][b]=-1;continue;}if(c==a+1){if(f[a][b]==2)f[a][b]=-1;else f[a][b]=1;}else if(d==b+1){if(f[a][b]==1)f[a][b]=-1;else f[a][b]=2;}}if(f[1][1]==-1){puts("0");return 0;}dp[1][1]=1;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){if(f[i][j]==-1)dp[i][j]=0;else{if(f[i-1][j]!=2)dp[i][j]+=dp[i-1][j];if(f[i][j-1]!=1)dp[i][j]+=dp[i][j-1];dp[i][j]%=p;}}println(dp[n][m]);return 0;
}