首页 > 其他分享 >[蓝桥杯 2022 省 A] 爬树的甲壳虫

[蓝桥杯 2022 省 A] 爬树的甲壳虫

时间:2024-04-12 12:22:51浏览次数:28  
标签:ch 甲壳虫 int res 蓝桥 2022 dp getchar

概率dp,关键是要走出思维定势:

一般来讲,都会把dp[i]定义为从0爬到高度i的概率,但是因为任何时刻都有掉下去的可能,这样子不好推(也有大佬这样做出来的)

我们把dp[i]定义为从i爬到n的概率,公式就好推了

而且,我们可以根据定义很自然地得到:

dp[n]=0

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

typedef long long LL;

inline int read()
{
    int x = 0, f = 1; char ch = getchar();
    while(ch < '0' || ch > '9') 
    {
        if(ch == '-') f = -1;
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9')
    {
        x = x * 10 + ch - '0';
        ch = getchar();
    }
    return x * f;
}

const LL P = 998244353;

int n;

LL quick_pow(LL a, LL k)
{
    LL res = 1;
    while(k)
    {
        if(k&1) res = res*a%P;
        a = a * a % P;
        k>>=1;
    }
    return res;
}

int main()
{
    n = read();
    LL k1 = 1, k2 = 0, k3 = 0;
    for(int i = 1; i <= n; i++)
    {
        int a = read(), b = read();
        LL p_fall = 1ll*a*quick_pow(1ll*b, P-2) % P;
        LL p_up = 1ll*(b-a)*quick_pow(1ll*b, P-2) % P;
        k3 = (k3 + k1) % P;
        k2 = (k2 + p_fall * k1 % P) % P;
        k1 = (k1 * p_up) % P;
    }
    LL t = quick_pow(1ll-k2, P-2);
    t=(t%P+P)%P;
    printf("%lld",k3*t%P);
    return 0;
}

一开始过不了样例,对着main函数看了半天,最后才发现问题在快速幂里

标签:ch,甲壳虫,int,res,蓝桥,2022,dp,getchar
From: https://www.cnblogs.com/smartljy/p/18130923

相关文章

  • 蓝桥杯-构造(数学公式1/n = 1/(n+1) + 1/(n+1)n )
    0.题目1.题解1.0找规律n=1,1/1=1/2+1/3+1/6n=2,1/2=1/4+1/6+1/12n=3,1/3=1/6+1/9+1/18....实际上,1/6=1/12+1/12,1/12=1/36+2/36=1/36+1/18即1/6=1/(62)+1/(623/2)+1/(623),即2,3,6三种1.1构造我们想要知道1/n......
  • 2022年蓝桥杯C++B组国赛-试题D-最大数字
    0.题目问题描述给定一个正整数N。你可以对N的任意一位数字执行任意次以下2种操作:将该位数字加1。如果该位数字已经是9,加1之后变成0。将该位数字减1。如果该位数字已经是0,减1之后变成9。你现在总共可以执行1号操作不超过A次,2号操作不超过......
  • 蓝桥杯-长草(BFS)
    0.题目【问题描述】小明有一块空地,他将这块空地划分为n行m列的小块,每行和每列的长度都为1。小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地。这些草长得很快,每个月,草都会向外长出一些,如果一个小块种了草,则它将向自己的上、下、左、右四小块空地扩展,这四小块......
  • [题解][2022江西省程序设计大赛] A Game of Taking Numbers
    题目描述rqdmap和他的小女友正在玩一个游戏。有n个正整数。这两个人轮流取数字。为了显示他的绅士风度,rqdmap要求他的小女友先取数字。每当rqdmap的小女友可以选择剩下的数字中的任意一个来拿走(记为x),rqdmap需要从剩下的数字中选择一个数字(记为y),并且满足以下两个条件中的至少一个......
  • P8725 [蓝桥杯 2020 省 AB3] 画中漂流
    题目:链接:https://www.luogu.com.cn/problem/P8725思路:dp[i][j]表示第i个时刻还有多少体力之前的错误思路:dp[i][j][k]表示第i个时刻,在j位置,有k个体力。但是注意:这三个变量并不是相互独立!!动规的一个取变量原则应该是相互独立确定某个状态。剩下k体力和i时刻可以推出位置!!site......
  • 蓝桥杯2016国赛-路径之谜
    0.题目小明冒充X星球的骑士,进入了一个奇怪的城堡。城堡里边什么都没有,只有方形石头铺成的地面。假设城堡地面是nxn个方格。【如图1.png】所示。按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着走,也不能跳跃。每走到一个新方格,就要向正北方和正西方各射一......
  • 蓝桥杯训练
    P8712[蓝桥杯2020省B1]整数拼接-洛谷|计算机科学教育新生态(luogu.com.cn)题解:这道题和牛客类似,我们换一个思路我们可以开一个二维数组  一位用来记录拼在后面数的长度,一个用来记录这个数乘上10的(后面数的长度)模10我们直接乘1到10,全部记录下来然后枚举右边的数,看......
  • 太阳(蓝桥杯14届)
    https://www.lanqiao.cn/problems/3529/learning/?subject_code=2&group_code=5&match_num=14&match_flow=1&origin=cup1importjava.util.*;2//1:无需package3//2:类名必须Main,不可修改4importjava.util.Map.Entry;56publicclassDemo1{7......
  • The 2022 ICPC Asia Hangzhou Regional Programming Contest
    目录写在前面FDCKAGM写在最后写在前面比赛地址:https://codeforces.com/gym/104090。以下按个人难度向排序。最上强度的一集,然而金牌题过了铜牌题没过,唐!去年杭州似在一道树上痛失Au呃呃,vp2022树题过了然而铜牌题没过呃呃F签到。大力模拟。codebydztle:#include<bit......
  • 第十二届蓝桥杯省赛真题(C/C++大学B组)
    目录#A空间#B卡片#C直线#D货物摆放#E路径#F时间显示#G砝码称重#H 杨辉三角形#I双向排序#J括号序列#A空间#include<bits/stdc++.h>usingnamespacestd;intmain(){ cout<<256*1024*1024/4<<endl; return0;}#B卡片#include<bit......