定义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. ApsNetCore打造一个“最安全”的api接口

    Authentication,Authorization 如果公司交给你一个任务让你写一个api接口,那么我们应该如何设计这个api接口来保证这个接口是对外看起来"高大上",&qu ...

  2. Docker--harbor私有仓库部署与管理

    目录 一.Harbor简介 二.Harbor 部署 三.维护管理Harbor  一.Harbor简介 1.什么是Harbor  ? Harbor 是 VMware 公司开源的企业级 Docker Re ...

  3. Apache Common-collection 反序列化利用链解析--TransformedMap链

    Apache Common-collection 反序列化利用链解析 TransformedMap链 参考Java反序列化漏洞分析 - ssooking - 博客园 (cnblogs.com) poc ...

  4. python 类方法 静态方法

    属性: 公有属性  (属于类,每个类一份) 普通属性  (属于对象,每个对象一份) 私有属性    (属于对象,跟普通属性相似,只是不能通过对象直接访问) 方法:(按作用) 构造方法 析构函数 方法: ...

  5. /usr/bin/python^M: bad interpreter: No such file or directory

    利用如下命令查看文件格式 :set ff 或 :set fileformat 可以看到如下信息 fileformat=dos 或 fileformat=unix 利用如下命令修改文件格式 :set f ...

  6. noj->电子老鼠走迷宫

    00 问题 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路.电子老鼠可以在路上向上.下.左.右行走,每一步走一个格子.现给定一个起 ...

  7. Scrum Meeting 0423

    零.说明 日期:2021-4-23 任务:简要汇报两日内已完成任务,计划后两日完成任务 一.进度情况 组员 负责 两日内已完成的任务 后两日计划完成的任务 qsy PM&前端 完成引导页UI# ...

  8. UltraSoft - Alpha - Scrum Meeting 7

    Date: Apr 22th, 2020. Scrum 情况汇报 进度情况 组员 负责 昨日进度 后两日任务 CookieLau PM 完成课程中心的json格式传递 完成邮箱验证机制 刘zh 前端 ...

  9. [no code][scrum meeting] Alpha 14

    项目 内容 会议时间 2020-04-22 会议主题 周中讨论会议 会议时长 45min 参会人员 全体成员 $( "#cnblogs_post_body" ).catalog() ...

  10. Vue3+Typescript+Node.js实现微信端公众号H5支付(JSAPI v3)教程--各种填坑

    ----微信支付文档,不得不说,挺乱!(吐槽截止) 功能背景 微信公众号中,点击菜单或者扫码,打开公众号中的H5页面,进行支付. 一.技术栈 前端:Vue:3.0.0,typescript:3.9.3 ...