定义f[i][j]表示从(i,j)走到最后一行的期望,不断从下往上dp那么对于每一行都可以得到m个方程。

但由于这m个方程不是DAG,因此考虑用高斯消元,但时间复杂度不对。

观察方程可以发现如果不断将f[i][j]表示出f[i][j+1]并代入那么就可以计算出f[n][m],再不断反代出来即可。

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define mod 998244353
4 #define ll long long
5 ll n,m,a,b,x[1001],y[1001],f[1001];
6 ll ksm(ll n,ll m){
7 if (!m)return 1;
8 ll s=ksm(n,m>>1);
9 s=s*s%mod;
10 if (m&1)s=s*n%mod;
11 return s;
12 }
13 int main(){
14 scanf("%lld%lld%lld%lld",&n,&m,&a,&b);
15 if (m==1){
16 printf("%lld",2*(n-a));
17 return 0;
18 }
19 for(int i=1;i<=n-a;i++){
20 x[1]=(mod+1)/2;
21 y[1]=(f[1]+3)*x[1]%mod;
22 for(int j=2;j<m;j++){
23 x[j]=(3LL*mod+1)/4;
24 y[j]=(1+x[j]*(f[j]+y[j-1]))%mod;
25 x[j]=ksm(x[j]*(3-x[j-1]+mod)%mod,mod-2);
26 y[j]=y[j]*x[j]%mod;
27 x[j]=x[j]*(3LL*mod+1)/4%mod;
28 }
29 f[m]=(y[m-1]+f[m]+3)*ksm((2-x[m-1]+mod)%mod,mod-2)%mod;
30 for(int j=m-1;j;j--)f[j]=(x[j]*f[j+1]+y[j])%mod;
31 }
32 printf("%lld",f[b]);
33 return 0;
34 }

[noi253]A的更多相关文章

随机推荐

  1. FFT&原根&NTT&MTT

    FFT bilibili 3b1b视频讲解 核心过程: 原根 Definition 若 \(a\) 模 \(m\) 的阶等于 \(\varphi(m)\),则称 \(a\) 为模 \(m\) 的一个原 ...

  2. 题解 Crash 的文明世界

    题目传送门 题目大意 给出一个\(n\)个点的树,和常数\(k\),对于\(\forall i\in[1,n]\),求出: \[\sum_{j=1}^{n} \text{dist}(i,j)^k \] ...

  3. 2020.10.17-pta天梯练习赛补题

    7-5敲笨钟 微博上有个自称"大笨钟V"的家伙,每天敲钟催促码农们爱惜身体早点睡觉.为了增加敲钟的趣味性,还会糟改几句古诗词.其糟改的方法为:去网上搜寻压"ong&quo ...

  4. Linux tomcat 部署war包

    将打包好的 war包放在 webapps的文件夹下 在tomcat/conf 文件夹下的 server.xml 里填加 <Context path="" docBase=&q ...

  5. vue2和vue3比较

    一.vue3新特性: 1.数据响应重新实现(ES6的proxy代替Es5的Object.defineProperty) 2.源码使用ts重写,更好的类型推导 3.虚拟DOM新算法(更快,更小) 4.提 ...

  6. Servlet学习一(Servlet的使用流程)

    一.servlet运行流程 运行流程:浏览器发送请求到服务器,服务器根据url地址在webapps中寻找对应的项目文件夹然后再web.xml中检索对应的servlet,并进行调用二.servlet类写 ...

  7. JVM:参数调优

    JVM:参数调优 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 前言 查看 JVM 系统默认值:使用 jps 和 jinfo 进行查看 -Xms:初始堆空间 - ...

  8. PM技术分享——《构建之法》初步实践

    软件理论 软件=程序+软件工程:软件开发活动(构建管理.源代码管理.软件设计.软件测试.项目管理)相关的内容的完成,才能完成把整个程序转化成为一个可用的软件的过程. 软件企业=软件+商业模式 软件开发 ...

  9. elasticsearch使用ik中文分词器

    elasticsearch使用ik中文分词器 一.背景 二.安装 ik 分词器 1.从 github 上找到和本次 es 版本匹配上的 分词器 2.使用 es 自带的插件管理 elasticsearc ...

  10. JavaAgent型内存马基础

    Java Instrumentation ​ java Instrumentation指的是可以用独立于应用程序之外的代理(agent)程序来监测和协助运行在JVM上的应用程序.这种监测和协助包括但不 ...