Queen on Grid_dp

简介: 思想很单纯-> dpCode:代码解释:dp加上之后,注意进行取模然后再更新这一个节点的计数(ans)

微信图片_20220607174422.png微信图片_20220607174429.png微信图片_20220607174436.png

思想很单纯-> dp


Code:


代码解释:

dp[i][j] += ans[1][i-1][j];///竖着过来
dp[i][j] %= mod;
dp[i][j] += ans[2][i][j-1];///横着过来
dp[i][j] %= mod;
dp[i][j] += ans[3][i-1][j-1];///斜着过来

dp加上之后,注意进行取模

然后再更新这一个节点的计数(ans)

ans[1][i][j] = (ans[1][i-1][j] + dp[i][j]) % mod;
ans[2][i][j] = (ans[2][i][j-1] + dp[i][j]) % mod;
ans[3][i][j] = (ans[3][i-1][j-1] + dp[i][j]) % mod;
char s[2008][2008];
ll ans[4][2008][2008];
ll dp[2008][2008];
int main()
{
    int n = read,m = read;
    dp[1][1] = 1;
    for(int i = 1;i <= n;i++) cin >> s[i] + 1;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(s[i][j] == '#'){
                ans[1][i][j] = 0;
                ans[2][i][j] = 0;
                ans[3][i][j] = 0;
                continue;
            }
            dp[i][j] += ans[1][i-1][j];
            dp[i][j] %= mod;
            dp[i][j] += ans[2][i][j-1];
            dp[i][j] %= mod;
            dp[i][j] += ans[3][i-1][j-1];
            dp[i][j] %= mod;
            ans[1][i][j] = (ans[1][i-1][j] + dp[i][j]) % mod;
            ans[2][i][j] = (ans[2][i][j-1] + dp[i][j]) % mod;
            ans[3][i][j] = (ans[3][i-1][j-1] + dp[i][j]) % mod;
        }
    }
    cout << dp[n][m] <<endl;
    return 0;
}
目录
相关文章
|
9月前
|
机器学习/深度学习 人工智能
|
9月前
|
容器
Grid网格布局
Grid网格布局
|
10月前
|
机器学习/深度学习
Dp练习
Dp练习
60 0
|
11月前
1394:连接格点(grid)
1394:连接格点(grid)
|
7月前
|
C++
9.DP单调队列优化
先弄出朴素DP->在用单调队列优化 一般都是区间的最大最小值,而且滑动的,才用单调队列优化
32 0
|
机器学习/深度学习
cf 910A(单调队列优化dp)
cf 910A(单调队列优化dp)
61 0
CF1341D.Nastya and Scoreboard (dp)
CF1341D.Nastya and Scoreboard (dp)
33 0
|
算法 BI
数位统计DP
复习acwing算法基础课的内容,本篇为讲解基础算法:动态规划——数位统计DP,关于时间复杂度:目前博主不太会计算,先鸽了,日后一定补上。
77 0
数位统计DP
ZCMU - 1166: 忠哥的dp(II)
ZCMU - 1166: 忠哥的dp(II)
96 0
|
SQL Oracle 关系型数据库
12.2 Grid RUR 安装
18c ru,rur 安装
1878 0

热门文章

最新文章