每日一题:路径计数

2023-11-17

路径计数 - 题目 - Daimayuan Online Judge

f[i][j]表示从左上角走到(i,j)的方案数

状态转移:(i,j)由(i-1,j)和(i,j-1)转移而来

初始状态:得使得f[1][1]为1,所以初始化f[1][0]或者f[0][1]为1(不要都初始化为1),这没有什么含义,只是用于启动,使得f[1][1]=1

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int  N = 110,mod=1e9+7;
int g[N][N];
int f[N][N];
int n;
int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            cin >> g[i][j];
       }
    }
    f[1][0] = 1;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            if (g[i][j]) f[i][j] = (f[i][j-1] + f[i - 1][j]) % mod;
        }
    }
    cout << f[n][n] << endl;
    return 0;
}

也可以直接从f[1][1]开始

AC代码:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#include<vector>
#define int long long
using namespace std;
const int N=110,mod=1e9+7;
int a[N][N];
int f[N][N];
void solve()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	f[1][1]=1;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(i==1&&j==1) continue;
			if(a[i][j]) f[i][j]=(f[i-1][j]+f[i][j-1])%mod;
		}
	}
//	for(int i=1;i<=n;i++){
//		for(int j=1;j<=n;j++) cout<<f[i][j]<<endl;
//	}
	cout<<f[n][n]<<endl;
}
signed main()
{
	solve();
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每日一题:路径计数 的相关文章

随机推荐

  • 深入探索 Dubbo 的 AOT 技术及其技术演进历程

    引言 随着云原生和微服务架构的兴起 高性能和低延迟成为了开发者们的关注重点 在 Java 生态系统中 Spring 和 Dubbo 是两个备受青睐的框架 它们为开发者提供了强大的功能和灵活性 为了进一步提升性能 Dubbo 团队引入了 AO
  • 开发工具之 Snipaste(超级截图工具)

    snipaste工具是一款开源免费的超级截图工具 这里小编强烈推荐此工具的使用 前言 当你使用ALT TAB习惯性的来回切屏的时候 其实在这个过程中 仔细想想是不是比较累 这样子做久了很容易导致疲劳 所以小编强推贴图功能 好了废话不多说 直
  • 5 insanely great books about mathematics you should read.

    本文转载至 http wp kjro se 2013 12 27 5 insanely great books about mathematics you should read 翻译请参考 http blog jobbole com 55
  • Android Studio 无法打开虚拟机

    Emulator PANIC Cannot find AVD system path Please define ANDROID SDK ROOT 刚安装好Android Studio 却发现无法打开虚拟机 报错信息为 Emulator P
  • Kafka:主题创建、分区修改查看、生产者、消费者

    文章目录 Kafka后台操作 1 主题 2 分区 3 生产者 4 消费者组 Kafka后台操作 1 主题 1 创建主题 bin kafka topics sh create bootstrap server hadoop102 9092 r
  • JavaScript 取消默认事件、阻止事件冒泡的方法

    首先页面上创建一个a标签 a href 默认事件 a 然后给body加一个点击事件 document body nclick function alert body 当我点击这个a标签的时候会有两个我们不想发生的事情 1 浏览器地址尾部出现
  • FreeSurfer和FSL的安装和使用(脑部图像去除头骨+对图像和label同时进行仿射对齐)教程

    FreeSurfer当前只支持Linux系统和Mac OS 我所使用的系统是Ubuntu 16 0 4 FreeSurfer的安装耗时较小 但是在处理时耗时较长 可能需要数个小时 甚至一天 这个取决于机器性能 但是和GPU好像没太大关系 下
  • (转)基于FPGA技术的FAST行情解码研究

    http mp weixin qq com s BviH6gAqej6lHd9XxFKUfg 交易技术前沿 基于FPGA技术的FAST行情解码研究 钟浪辉 陈敏 陈坚 刘啸林 秦轶轩 李道双 2017 09 08 上交所技术服务 本文选自
  • 数据库分表分库理论

    1 数据切分 关系型数据库本身比较容易成为系统瓶颈 单机存储容量 连接数 处理能力都有限 当单表的数据量达到1000W或100G以后 由于查询维度较多 即使添加从库 优化索引 做很多操作时性能仍下降严重 此时就要考虑对其进行切分了 切分的目
  • 第十四届蓝桥杯模拟赛(第一期)—保姆级解释(C语言版)

    1 二进制位数 问题描述 十进制整数 2 在十进制中是 1 位数 在二进制中对应 10 是 2 位数 十进制整数 22 在十进制中是 2 位数 在二进制中对应 10110 是 5 位数 请问十进制整数 2022 在二进制中是几位数 incl
  • cmake(03) : 平台,架构及编译器判断

    1 cmake检测平台架构及编译器的原理 cmake在检测编译器的时候 用了一种很暴力的方法 可以在不运行实际代码的情况下直接知道目标平台的信息 做法是这样的 首先生成一个 cpp文件 包含一些平台检测的 ifdef Identify kn
  • Linux 环境下 docker 安装 ES 7.15.2 和 kibana 7.15.2 详细步骤

    目标 在一台机器内设置3个ES节点和1个kibana节点正常运行 条件 本机器内的IP 192 168 211 130 1 首先安装docker 步骤详见链接https blog csdn net m0 55380752 article d
  • 期货投机和套利交易

    一 期货投机的概念 1 期货投机的定义 指交易者通过预测期货合约未来价格的变化 以在期货市场上获取价差收益为目的的期货交易行为 期货交易具有保证金的杆杠机制 双向交易和对冲机制 当日无负债的结算制度 强行平仓制度 使得期货投机易有高收益 高
  • 微信小程序_安装第三方的UI组件库(详细步骤)

    微信小程序的UI组件库 在我了解的 有两种方式 一种是微信小程序的官方文档自带的小程序 另一种是vant的小程序的UI组件库 一 官方自带的小程序的安装步骤 官方文档 https developers weixin qq com minip
  • Mysql管理

    一 Mysql 一 前言 MySQL是一个关系型数据库管理系统 由瑞典MySQL AB 公司开发 目前属于 Oracle 旗下产品 MySQL 是最流行的关系型数据库管理系统之一 在 WEB 应用方面 MySQL是最好的 RDBMS Rel
  • C++11:转移语义

    为什么需要转移语义 gt File Name main cpp gt Author Xianghao Jia gt mail xianghaojia sina com gt Created Time Mon 09 Dec 2019 04 2
  • ubuntu创建新用户并设置samba服务

    1 新建自己的用户并查看 sudo useradd m s bin bash 用户名 sudo passwd 用户名 ls home t 或者 1创建一个新的普通用户 m 表示用户 s表示shell环境 sudo useradd m gue
  • Selenium:网页屏幕截图

    前言 在学习 Selenium 做 UI自动化时 往往会遇到需要截图的时候 框架自带截图方法 方法 方法释义 save screenshot filename 截取当前屏幕截图 并保存为指定文件 此方法没必要使用 get screensho
  • iOS音视频—Shell脚本语言(语法-echo命令&参数传递)

    That wonderful world is waiting for me Shell脚本语言 语法 echo命令 1 显示普通字符串 echo iPhoneX 标配 8388 2 显示转义字符 echo iPhoneX 顶配 9688
  • 每日一题:路径计数

    路径计数 题目 Daimayuan Online Judge f i j 表示从左上角走到 i j 的方案数 状态转移 i j 由 i 1 j 和 i j 1 转移而来 初始状态 得使得f 1 1 为1 所以初始化f 1 0 或者f 0 1