首页 > 其他分享 >每日OJ_牛客_蘑菇阵(在矩阵上dp)

每日OJ_牛客_蘑菇阵(在矩阵上dp)

时间:2024-09-02 15:25:44浏览次数:4  
标签:OJ int 矩阵 牛客 vector 蘑菇 dp

目录

牛客_蘑菇阵(在矩阵上dp)

解析代码


牛客_蘑菇阵(在矩阵上dp)

蘑菇阵__牛客网


解析代码

        类似于走迷宫,蘑菇代表不能走通,但不同的是,迷宫可以向前后左右四个方向移动,但该 题走的方式只能向右或者向下两个方向移动,注意:右边界处只能向一个方向移动,因此走不通 路径的概率是不相等的。思路:

  1. 循环接受输入(注意:一般IO类型算法即需要写main的算法,背后可能有多个测试用例,每个用例必须测试到,因此需要循环输入)。
  2. 按照输入构造蘑菇地图(二维矩阵),1代表蘑菇,0代表通路,因起点是从(1,1)开始,矩阵多给一个行和列。
  3. 构造用来保存走到(i,j)位置不遇到蘑菇的概率容器。
  4. 按照上述分析结论:遍历蘑菇地图,当遇到蘑菇时,将概率置为0,即不可能到达该位置。
  5. 按照要求输出:注意保留两位精度。 
#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int n = 0, m = 0, k = 0;
    while(cin >> n >> m >> k)
    {
        vector<vector<bool>> arr(n + 1, vector<bool>(m + 1, true));
        while(k--) // true是草地,false是蘑菇
        {
            int x = 0, y = 0;
            cin >> x >> y;
            arr[x][y] = false;
        }

        vector<vector<double>> dp(n + 1, vector<double>(m + 1));
        dp[1][1] = 1.0;
        for (int i = 1; i <= n; ++i)
        {
            for (int j = 1; j <= m; ++j)
            {
                if (i == 1 && j == 1)
                    continue;
                // 对于每个位置,按照上述转移方程来确定概率
                // 第一维为n时,为最后一行,第二维为m时为最右一列,概率为1
                dp[i][j] = dp[i][j - 1] * (i == n ? 1 : 0.5)
                             + dp[i - 1][j] * (j == m ? 1 : 0.5);
                // 如果该位置为蘑菇,到达该位置的概率为0
                if (arr[i][j] == false)
                    dp[i][j] = 0;
            }
        }
        printf("%.2f\n", dp[n][m]);
    }
    return 0;
}

标签:OJ,int,矩阵,牛客,vector,蘑菇,dp
From: https://blog.csdn.net/GRrtx/article/details/141792403

相关文章

  • 一个练习项目,好玩的bbs-perl-mojolicious
    代码:#!D:/software/Strawberry/perl/bin/perl.exeBEGIN{push(@INC,'D:/workspace/studys/study_bbs');}useMojolicious::Lite-signatures;useutf8;useNet::MySQL;useEncode;usePOSIX;useJSONqw/encode_jsondecode_json/;useDigest;o......
  • 如何使用 Python 调用 DPAPI ?
    在Windows环境下,DPAPI(DataProtectionAPI)是一种用于加密和解密数据的API,可以保护数据,使其只能由当前用户或计算机访问。在Python中,可以通过Cryptography或pywin32等库来使用DPAPI进行数据加密和解密。以下是我我做项目时使用Python调用DPAPI进行数据加密和解密的示......
  • 如果有多块dpu怎么办?
    A,1,查看os版本uname-a2,下载相应的host的doca3,删除老docaforfin$(rpm-qa|grep-idoca);doyum-yremove$f;done4,根据指令安装doca在host上5,ls/dev/rsh*看rshim设备是否已经生成 B,安装网卡相关的几个firmware。它似乎不在docahost当中 C,安装dpu的bfb ......
  • zdppy+vue3+onlyoffice文档管理系统实战 20240901 上课笔记 基于验证码登录功能基本完
    遗留的问题1、点击切换验证码2、1分钟后自动切换验证码点击切换验证码实现步骤:1、点击事件2、调用验证码接口3、更新验证码的值点击事件给图片添加点击事件:<img:src="'data:image/png;base64,'+captchaImg"style="width:100%;height:50px;margin-top:10......
  • DP训练7 重新复健
    很久没写题了大概有半个月吧中间有许多忙事然后这几天开学也是手机坏掉了电脑坏掉了然后又要招新最重要的是复健ccpc今年去不了了因为报名没注意过时间了第一道错排题目做了这道题我才知道错排的首先错排是什么就是说abcd....这么多个人没有一个人可以站在......
  • 通过 Docker 部署 WordPress 搭建博客保姆级教程
    前言(废话)因为最近想搭建一个属于自己的博客,这样就能像筑巢一样随意装饰自己的家,没有那么多的平台约束。虽然搭建个人博客的框架有很多,比如HEXO,HUGO,VuePress等,但在思前想后,最终还是选择了WordPress。我在部署过程中遇到了一系列的问题:需要什么服务,Mysql、PHP、Nginx?如何突破WordP......
  • TCP协议与UDP协议相比有哪些优势和劣势?
    TCP(TransmissionControlProtocol,传输控制协议)和UDP(UserDatagramProtocol,用户数据报协议)是互联网上两种主要的传输层协议,它们各自有不同的特点和适用场景。以下是TCP相对于UDP的优势和劣势:TCP的优势:1.可靠性:TCP提供了可靠的数据传输服务。它通过序列号、确认应答......
  • 实现UDP可靠性传输(KCP介绍使用)
    1、TCP协议介绍TCP协议是基于IP协议,面向连接,可靠基于字节流的传输层协议1、基于IP协议:TCP协议是基于IP协议之上传输的,TCP协议报文中的源端口+IP协议报文中的源地址+TCP协议报文中的目标端口+IP协议报文中的目标地址,组合起来唯一确定一条TCP连接。2、面向连接:与UDP不同,TCP在传输数......
  • 2024.8.31 总结(集训 考 DP)
    今天依然是上午考DP,三个小时四道题。我觉得今天的题目较昨天更简单。考场上就想出了四个题,但是我以为T1\(O(n^3)\)的做法是暴力,想了好久T1也没想出更好的做法,于是开写,然后造数据测了测,发现跑得比较快(极限数据应该也是能在我的位置上那台电脑里1s内过的)。结果出分是330,......
  • LOJ #6089. 小 Y 的背包计数问题 题解
    Description小Y有一个大小为\(n\)的背包,并且小Y有\(n\)种物品。对于第\(i\)种物品,共有\(i\)个可以使用,并且对于每一个\(i\)物品,体积均为\(i\)。求小Y把该背包装满的方案数为多少,答案对于\(23333333\)取模。定义两种不同的方案为:当且仅当至少存在一种物品的......