求助 蘑菇阵 这道题

牛牛题库BD4 蘑菇阵

描述

现在有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少?

输入描述:

第一行N,M,K(1 ≤ N,M ≤ 20, k ≤ 100),N,M为草地大小,接下来K行,每行两个整数x,y,代表(x,y)处有一个蘑菇。

输出描述:

输出一行,代表所求概率(保留到2位小数)

示例1

输入:2 2 1

2 1

输入:0.50

###################################################################

我的想法是,用动态规划,记录两个状态:0表示没有碰到蘑菇走到该位置的路线个数,1表示碰到蘑菇了,然后走到家,她不碰到蘑菇走到B的家的概率=她不碰到蘑菇走到B的家的路线个数/(总路线个数)=dp[-1][0]/(dp[-1][0]+dp[-1][1])

代码如下:

while 1:

    try:

        n,m,k=list(map(int,input().strip().split()))

        danger=[[False for _ in range(m)]for _ in range(n)]

        for _ in range(k):

            x,y=list(map(int,input().strip().split()))

            danger[x-1][y-1]=True

        if danger[0][0]:

            print('0.00')

            break

        dp=[[0,0]for _ in range(m+1)]

        dp[1]=[1,0]

        for row in range(1,n+1):

            for col in range(1,m+1):

                if danger[row-1][col-1]:

                    dp[col][1]+=dp[col-1][0]+dp[col-1][1]+dp[col][0]

                    dp[col][0]=0

                else:

                    dp[col][0]+=dp[col-1][0]

                    dp[col][1]+=dp[col-1][1]

        ans=dp[-1][0]/(dp[-1][0]+dp[-1][1])

        print(f'{ans:.2f}')

    except:

        break

####################

然后只通过了1/10.....

看测试案例,比如说

输入:

6 16 2

1 10

1 13

他的预期输出是1.00

我的输出是0.97

这怎么可能是1啊,难道是我题目理解有问题吗?

另外我有想到它这个1估计是每次都算一次概率值,然后pow(0.5,n),n很大的时候就舍掉变成0了所以最后是1.....但是,我这个方法不应该更准确吗,求各位大佬帮忙看看~

#求助##百度笔试##代码bug##悬赏#
全部评论

相关推荐

不愿透露姓名的神秘牛友
2025-12-17 16:48
今天九点半到公司,我跟往常一样先扫了眼电脑,屁活儿没有。寻思着没事干,就去蹲了个厕所,回来摸出手机刷了会儿。结果老板刚好路过,拍了我一下说上班别玩手机,我吓得赶紧揣兜里。也就过了四十分钟吧,我的直属领导把我叫到小隔间,上来就给我一句:“你玩手机这事儿把老板惹毛了,说白了,你可以重新找工作了,等下 HR 会来跟你谈。” 我当时脑子直接宕机,一句话都没憋出来。后面 HR 找我谈话,直属领导也在旁边。HR 说我这毛病不是一次两次了,属于屡教不改,不光上班玩手机,还用公司电脑看论文、弄学校的事儿。我当时人都傻了,上班摸鱼是不对,可我都是闲得发慌的时候才摸啊!而且玩手机这事儿,从来没人跟我说过后果这么严重,更没人告诉我在公司学个习也算犯错!连一次口头提醒都没有,哪儿来的屡教不改啊?更让我膈应的是,昨天部门刚开了会,说四个实习生里留一个转正,让大家好好表现。结果今天我就因为玩手机被开了。但搞笑的是,开会前直属领导就把我叫去小会议室,明明白白告诉我:“转正这事儿你就别想了,你的学历达不到我们部门要求,当初招你进来也没打算给你这个机会。”合着我没入贵厂的眼是吧?可我都已经被排除在转正名单外了,摸个鱼至于直接把我开了吗?真的太离谱了!
rush$0522:转正名单没进,大概率本来就没打算留你
摸鱼被leader发现了...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务