[noi253]A
定义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的更多相关文章
随机推荐
- NOIP模拟73
T1 小L的疑惑 解题思路 第一眼不是正解,又是 bitset 优化可以得到的 60pts 的部分分. 打着打着突然发现这个东西好像和之前做过的某个题有一些相似,试着打了一下. 然后样例过了,然后对拍 ...
- Java泛型中的细节
Java泛型中的细节 如果没有泛型 学习Java,必不可少的一个过程就是需要掌握泛型.泛型起源于JDK1.5,为什么我们要使用泛型呢?泛型可以使编译器知道一个对象的限定类型是什么,这样编译器就可以在一 ...
- 如何在 Serverless K8s 集群中低成本运行 Spark 数据计算?
作者 | 柳密 阿里巴巴阿里云智能 ** 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复"入门",即可获取 ...
- .NET Reflector软件破解
转自:https://blog.csdn.net/zxy13826134783/article/details/89057871 软件和注册机下载地址: 链接:https://pan.baidu.co ...
- Java基础之(一):JDK的安装以及Notepad++的下载
从今天开始就开始我的Java的学习了,学习Java前需要做一些前期的准备工作.好了,现在我们先一起来安装JDK. JDK的安装 JDK下载链接:JDK 下载电脑对应的版本,同意协议 双击安装JDK 将 ...
- 题解 GRE Words Revenge
题目传送门 题目大意 给出 \(m\) 次操作,分别为以下两种操作: 学习一个单词 给出一个段落,查询里面有多少个学过的单词.注意,如果学习过 \(\text{ab,bc}\) ,当前查询段落为 \( ...
- MySQL数据库建表命名的坑
今天建了一张表,表名为--inOut: 然后再使用中发现怎么都是SQL错误: 然后在Navacat上发现 这是一个关键词! 如果非要继续使用,只能这样: 类似的坑还有user等.
- 从0到1使用Kubernetes系列(二):安装工具介绍
该系列第一篇为:<从0到1使用Kubernetes系列--Kubernetes入门>.本文是Kubernetes系列的第二篇,将介绍使用Kubeadm+Ansible搭建Kubernete ...
- 远程设备管理opendx平台搭建-appium和adb的安装
多年不见了,说起来也有3年了我又开始写博客了,这几年我还是没啥长进,还是干测试,但是测试行业的话,我已经成了一个测开了,也在搭建自己的测试网站 本系列文章讲述的是一个系列的第一部分,最终可以搭建一整套 ...
- the Agiles Scrum Meeting 3
会议时间:2020.4.11 21:30 1.每个人的工作 今天已完成的工作 yjy:基本实现广播功能的前端 issues:小组任务1-增量开发组 wjx:基本实现注销功能的后端 issues:小组任 ...