动态规划记录 [动态更新]

简介: 2021 江西省赛A题目链接:https://ac.nowcoder.com/acm/contest/21592/A题意:给出一个布尔矩阵(每个位置的值非零即一)然后问给定p和q,问从(1,1)=》(n,m)的所有路径中至少通过p次0&&q次1的路径的数量
  1. 2021 江西省赛A
    题目链接:https://ac.nowcoder.com/acm/contest/21592/A
    题意:给出一个布尔矩阵(每个位置的值非零即一)
    然后问给定p和q,问从(1,1)=》(n,m)的所有路径中至少通过p次0&&q次1的路径的数量


const int md = 998244353;
int a[507][507];
ll dp[507][1007];
int main() {
  int n = read,m = read,p = read,q = read;
  for(int i=1; i<=n; i++) {
    for(int j=1; j<=m; j++) a[i][j] = read;
  }
  dp[1][!a[1][1]] = 1;
  for(int i=1; i<=n; i++) {
    for(int j=1; j<=m; j++) {
      if(i != 1 || j != 1)
      if(a[i][j] == 1) {
        for(int k=i+j-1; k>=0; k--) dp[j][k] = (dp[j][k] + dp[j-1][k]) % md;
      } else {
        for(int k=i+j-1; k>=1; k--) dp[j][k] = (dp[j][k-1] + dp[j-1][k-1]) % md;
        dp[j][0] = 0;
      }
    }
  }
  ll ans = 0;
  for(int i=p; i<=n+m-1-q; i++) ans = (ans + dp[m][i]) % md;
  cout << ans << endl;
  return 0;
}


文章知识点与官方知识档案匹配,可进一步学习相关知识

算法技能树leetcode-动态规划22-括号生成8282 人正在系统学习中

目录
相关文章
|
5天前
|
算法
leetcode代码记录(组合
leetcode代码记录(组合
8 0
|
13天前
2569. 更新数组后处理求和查询(模板 + 普通线段树熟练掌握)
2569. 更新数组后处理求和查询(模板 + 普通线段树熟练掌握)
|
关系型数据库 MySQL 索引
新增数据时,MySQL索引树的自调整过程
刚开始你一个表建好后,就一个数据页,就是聚簇索引的一部分,而且还是空的。若你插入数据,就是直接往这数据页里插入,也没必要给他弄索引页
85 0
|
SQL 移动开发 BI
【SQL开发实战技巧】系列(二十三):数仓报表场景☞ 如何对数据排列组合去重以及通过如何找到包含最大值和最小值的记录这个问题再次用执行计划给你证明分析函数性能不一定高
怎样对数据组合重新排列并去重的问题、通过如何找到包含最大值和最小值的记录这个问题再次用执行计划给你证明分析函数性能不一定高【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。本篇文章主要介绍的两个方面,第一个方面曾经有好几个网友和同事问我,第二个问题真的是很多同行的通病,认为分析函数是万金油,一股脑用。
【SQL开发实战技巧】系列(二十三):数仓报表场景☞ 如何对数据排列组合去重以及通过如何找到包含最大值和最小值的记录这个问题再次用执行计划给你证明分析函数性能不一定高
|
算法 测试技术
【算法作业】实验三:划分集合-贪心 & 可能的IP地址-回溯
【算法作业】实验三:划分集合-贪心 & 可能的IP地址-回溯
139 0
【算法作业】实验三:划分集合-贪心 & 可能的IP地址-回溯
|
SQL 搜索推荐 关系型数据库
B+树索引使用(8)排序使用及其注意事项(二十)
B+树索引使用(8)排序使用及其注意事项(二十)
【刷题记录】40. 组合总和 II
【刷题记录】40. 组合总和 II
81 0
【刷题记录】40. 组合总和 II
【刷题记录】39. 组合总和
【刷题记录】39. 组合总和
101 0
【刷题记录】39. 组合总和
【刷题记录】33. 搜索旋转排序数组
【刷题记录】33. 搜索旋转排序数组
118 0
【刷题记录】33. 搜索旋转排序数组