HDU 1978 How many ways(记忆化搜索)

HUSTOJ 基础题组3 问题 R How many ways 如上图,机器人一开始在(1,1)点,并拥有4单位能量,蓝色方块表示他所能到达的点,如果他在这次路径选择中选择的终点是(2,4)点,当他到达(2,4)点时将拥有1单位的能量,并开始下一次路径选择,直到到达(6,6)点。这可能是一个很大的数,输出的结果对10000取模。这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。4.当机器人选择了一条可行路径后,当他走到这条路径的终点时,他将只有终点所标记的能量。1.机器人一开始在棋盘的起始点并有起始点所标有的能量。 阅读详情

How many ways

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5262    Accepted Submission(s): 3104


Problem Description
这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下:
1.机器人一开始在棋盘的起始点并有起始点所标有的能量。
2.机器人只能向右或者向下走,并且每走一步消耗一单位能量。
3.机器人不能在原地停留。
4.当机器人选择了一条可行路径后,当他走到这条路径的终点时,他将只有终点所标记的能量。

如上图,机器人一开始在(1,1)点,并拥有4单位能量,蓝色方块表示他所能到达的点,如果他在这次路径选择中选择的终点是(2,4)

点,当他到达(2,4)点时将拥有1单位的能量,并开始下一次路径选择,直到到达(6,6)点。
我们的问题是机器人有多少种方式从起点走到终点。这可能是一个很大的数,输出的结果对10000取模。
 

Input
第一行输入一个整数T,表示数据的组数。
对于每一组数据第一行输入两个整数n,m(1 <= n,m <= 100)。表示棋盘的大小。接下来输入n行,每行m个整数e(0 <= e < 20)。
 

Output
对于每一组数据输出方式总数对10000取模的结果.
 

Sample Input
  
1 6 6 4 5 6 6 4 3 2 2 3 1 7 2 1 1 4 6 2 7 5 8 4 3 9 5 7 6 6 2 1 5 3 1 1 3 7 2
 

Sample Output
  
3948
 

Author
xhd
 

Source
 

Recommend
wangye

 


#include<bits/stdc++.h>
using namespace std;

const int Mod = 10000;
const int N = 100 + 10;
int a[N][N], dp[N][N];
int t, n, m;

int judge(int i, int j)
{
    if(i >= 0 && i < n && j >= 0 && j < m) return 1;
    return 0;
}

int dfs(int x, int y)
{
    if(dp[x][y] >= 0) return dp[x][y];
    dp[x][y] = 0;
    for(int i = 0; i <= a[x][y]; i++)
    {
        for(int j = 0;j <= a[x][y] - i; j++)
        {
            if(judge(x + i, y + j))
                dp[x][y] += dfs(x + i, y + j) % Mod;
        }
    }
    return dp[x][y];
}

int main()
{
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d%d", &n, &m);
        memset(dp, -1, sizeof(dp));
        for(int i = 0; i < n; i++)
        {
            for(int j = 0; j < m; j++)
            {
                scanf("%d", &a[i][j]);
            }
        }
        dp[n - 1][m - 1] = 1;
        printf("%d\n", dfs(0, 0) % Mod);
    }
}


HDU 1978 How many ways(第一道记忆化搜索+DP) How many ways Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4610    Accepted Submission(s): 2726 Problem Description 这是一个简单的生存游戏, 阅读详情

相关推荐

du熊机器人题解(棋盘问题)

du熊机器人走棋盘题解。du熊正在玩一个别人刚送给它的机器人。这个机器人只能在一个棋盘中行走,棋盘的左上角格子为(0, 0),右下角格子为(X, Y)。

计蒜客:机器人走方格

题解:机器人走方格!

kzhshsh的博客 1047

Tailscale 自建 DERP 中继服务器

Tailscale自建DERP中继服务器

Accompagner的博客 4328

hdu 1948 How many ways

How many ways Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 166Accepted Submission(s): 105 Problem Description 这是一个简单的生存游戏,你...

weixin_30846599的博客 456

Vmware Vcenter7.0证书web续期发生错误

生成证书,选择第三个(PS,如果没有域名的,一定要写IP,不然很容易卡在85%,服务不能起来)这里大概率可能是证书里面的FQDN和主机不匹配,又或者是主机解析FQDN有问题。vCenter _MACHINE_CERT快到期了,通过web界面更新证书失败。vSphere Client 版本 7.0.2.00200。登陆ssh到vcenter,重新生成证书。先关掉HA,不然证书管理会报错。第一步先这样,重新续订一下证书。

m0_74823595的博客 3944

直线型一阶倒立摆1---从理论到实践的桥梁

本文深入探讨了直线型一阶倒立摆在控制理论中的核心地位,从非线性控制、鲁棒性到实时反馈等关键问题。通过实际案例和硬件搭建指南,帮助读者理解从理论到实践的过渡,特别适合控制工程初学者和研究人员。文章还提供了算法选型建议和硬件避坑手册,是掌握倒立摆控制的实用指南。

weixin_29047545的博客 317

GUETOJ - 1119 How many ways(动态规划)

http://acm.guet.edu.cn/problemset/problem/1119 #include #include #include using namespace std; const int MAX_N = 101; int N, M, T; int a[MAX_N][MAX_N], dp[MAX_N][MAX_N]; bool in(int x, int y){

NightWind 805

国宇测试盒GH7009 SPI读操作全解析:从接线到代码实现的避坑指南

本文详细解析了国宇GH7009测试盒进行SPI读操作的完整流程与避坑要点。重点阐述了硬件连接中IO2时序控制引脚的关键作用,提供了从接线方案、电源处理到上位机代码实现的实战指南,并针对常见的数据不稳定、特定寄存器读取失败等问题给出了具体解决方案。

dapp9builder的博客 223

[HDOJ-1978]How many ways

Problem Description 这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下: 1.机器人一开始在棋盘的起始点并有起始点所标有的能量。 2.机器人只能向右或者向下走,并且每走一步消耗一单位能量。 3.机器人不能在原地停留。 4.当机器人选择了一条可行路径后,当他走到这条路径的终点时,他将只有终点所标记的能量。 如上图,机...

GreatWzi的博客 674

【RAG文档解析优化】复杂Excel表格处理

—从识别表格边界,到恢复内部结构,再到生成RAG友好的表示——我们可以系统性地将这些“带刺的玫瑰”驯服。虽然代码实现可能充满细节和挑战,但其带来的回报是巨大的:一个更干净、更可靠的知识库,以及一个能真正理解和利用表格数据、从而提供精准答案的RAG系统。为了人类阅读的便利性,制作者常常会使用合并单元格来创建标题、使用多层表头来组织复杂的列、在同一个Sheet页中放置多个相关的表格,并添加大量的注释说明。它们就像一朵朵“带刺的玫瑰”,虽然蕴含着宝贵的数据,但如果直接用传统的方法(如。

kakaZhui的博客 853

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

hdu 1978 How many ways(记忆化搜索)

How many ways Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1851    Accepted Submission(s): 1134 Problem Description 这是一个简单的生存游戏,

街角的花街糖 670

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

hdu1978 How many ways(记忆化搜索)

http://acm.hdu.edu.cn/showproblem.php?pid=1978 题意:中文题。 思路:注意这题题中说“当机器人选择了一条可行路径后,当他走到这条路径的终点时,他将只有终点所标记的能量”。刚开始这条件我就看了半天,这句话中明确指出大的能量转移(不包括每走一步的能量减一)只有一个条件可以触发,那就是到达终点,其他没说明的就表明无法触发。(有异议的欢迎撕逼,

Iguodala的博客 489

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

How many ways HDU - 1978(DP 或 记忆化搜索)

How many ways HDU - 1978题意:n*m的棋盘, 机器人由左上角走到右下角, 规则如下:1.机器人一开始在棋盘的起始点并有起始点所标有的能量。 2.机器人只能向右或者向下走,并且每走一步消耗一单位能量。 3.机器人不能...

Sirius_han的博客 374

hdu 1978 How many ways 记忆化搜索

Description 这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下:  1.机器人一开始在棋盘的起始点并有起始点所标有的能量。  2.机器人只能向右或者向下走,并且每走一步消耗一单位能量。  3.机器人不能在原地停留。  4.当机器人选择了一条可行路径后,当他走到这条路径的终点时,他将只有终点所标记的能量。 

小周周i的博客 314

HDU 1978 How many ways(经典记忆化搜索)

&#13; &#13; S - How many ways&#13; Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d &amp; %I64u&#13; Submit Status&#13; &#13; &#13; &#13; Description&#13; &#13; 这是一个简单...

Y先森0.0 312

How many ways-hdu1978-记忆化搜索

这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下:1.机器人一开始在棋盘的起始点并有起始点所标有的能量。2.机器人只能向右或者向下走,并且每走一步消耗一单位能量。3.机器人不能在原地停留。4.当机器人选择了一条可行路径后,当他走到这条路径的终点时,他将只有终点所标记的能量。如上图,机器人一开始在(1,1)点,并拥有4...

weixin_30588729的博客 176

hdu1978How many ways —— 记忆化搜索

How many ways Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1869 Accepted Submission(s): 1144 Problem Description 这是一个简单的...

zhaohaibo的博客 326

记忆化搜索(搜索+动态规划)HDU1978 How Many Ways

这一题应该算是比较简单的,但是可以用记忆化搜索,刚开始我不会,这应该算是我接触到记忆化搜索的第一题。 直接上原题 Z - How many ways Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description

Kerwun的博客 887

HDU - 1978 How many ways 记忆化搜索dp+bfs

题目链接:HDU - 1978 How many ways 题目描述 这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下: 1.机器人一开始在棋盘的起始点并有起始点所标有的能量。 2.机器人只能向右或者向下走,并且每走一步消耗一单位能量。 3.机器人不能在原地停留。 4.当机器人选择了一条可行路径后,当他走到这条路径的终点时,他将只有终点所标记的能量。 如上图,机器人一开始在(1,1)点,并拥有4单位能量,蓝色方块表示他所能到达的点,如果他在

hrdate(菜菜菜带带带) 246

hdu 1978 How many ways (动态规划、记忆化搜索)

How many ways Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2957    Accepted Submission(s): 1733 Problem Description 这是一个简单的生存游戏,

Coding A World 2444

hdu 1978 How many ways(DP | 记忆化搜索)

状态转移方程:dp[i+k][j+l] = (dp[i+k][j+l] + dp[i][j]) % 10000; dp[i][j]表示到达点(i,j)的途径数, 其中k,l为处在点(i,j)时,能够到达点(i+k,j+l)。 #include #include #include #include #include #include #include #include #incl

Paradiser 1093
上一篇: 个人模板 最长公共子序列
下一篇: HDU 2609 How many(字符串同构,最小表示法)
信鸦
博客等级 码龄10年 10粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值