题解

本题不用什么推式子,找规律(而且也找不出来)

可以将整个式子看成一个 \(n×m\) 矩阵

考虑 \(f_{i,j}\),它向右走一步给出 \(f_{i,j}×a\) 的贡献,向下走一步给出 \(f_{i,j}×b\) 的贡献,那么它到 \(f_{n,m}\) 给出 \(f_{i,j}×a^{m-j}+f_{i,j}×b^{n-i}\) 的贡献

但是,它到终点会有不同的走法,这个用组合数解即可,注意对于 \(f_{i,0}\) 它第一步只能向右走,因为向下的数是确定的。其它同理

预处理出阶乘,逆元和 \(a,b\) 的幂,按上述求解即可

Code
#include<bits/stdc++.h>
#define ri register signed
#define p(i) ++i
using namespace std;
namespace IO{
char buf[1<<21],*p1=buf,*p2=buf;
#define gc() p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++
template<typename T>inline void read(T &x) {
ri f=1;x=0;register char ch=gc();
while(ch<'0'||ch>'9') {if (ch=='-') f=0;ch=gc();}
while(ch>='0'&&ch<='9') {x=(x<<1)+(x<<3)+(ch^48);ch=gc();}
x=f?x:-x;
}
}
using IO::read;
namespace nanfeng{
#define cmax(x,y) ((x)>(y)?(x):(y))
#define cmin(x,y) ((x)>(y)?(y):(x))
#define FI FILE *IN
#define FO FILE *OUT
typedef long long ll;
static const int MOD=998244353,N=3e5+7;
ll numx[N],numy[N],cma[N],cmb[N],frac[N<<1],inv[N<<1],a,b,ans;
int n,m,mx;
inline void init(int x) {
int tmp=x<<1;
inv[0]=inv[1]=frac[1]=1;
for (ri i(2);i<=tmp;p(i)) frac[i]=frac[i-1]*i%MOD;
for (ri i(2);i<=tmp;p(i)) inv[i]=(MOD-MOD/i)*inv[MOD%i]%MOD;
for (ri i(2);i<=tmp;p(i)) (inv[i]*=inv[i-1])%=MOD;
}
inline ll C(int a,int b) {return (!a&&!b)?1:frac[a]*inv[a-b]%MOD*inv[b]%MOD;}
inline int main() {
// FI=freopen("nanfeng.in","r",stdin);
// FO=freopen("nanfeng.out","w",stdout);
read(n),read(m),read(a),read(b);
mx=cmax(n,m);
init(mx);
cma[0]=cmb[0]=1;
a%=MOD,b%=MOD;
for (ri i(1);i<=mx;p(i)) cma[i]=cma[i-1]*a%MOD,cmb[i]=cmb[i-1]*b%MOD;
for (ri i(1);i<=n;p(i)) read(numx[i]),numx[i]%=MOD;
for (ri i(1);i<=m;p(i)) read(numy[i]),numy[i]%=MOD;
for (ri i(1);i<=n;p(i)) (ans+=numx[i]*C(m+n-i-1,m-1)%MOD*cma[m]%MOD*cmb[n-i]%MOD)%=MOD;
for (ri i(1);i<=m;p(i)) (ans+=numy[i]*C(n+m-i-1,n-1)%MOD*cma[m-i]%MOD*cmb[n]%MOD)%=MOD;
printf("%lld\n",ans);
return 0;
}
}
int main() {return nanfeng::main();}

此题较坑,他输入的 \(a,b,f_{i,0},f_{0,i}\) 均为 long long 范围,所以输入完后要先取模。

NOIP 模拟 $13\; \text{工业题}$的更多相关文章

  1. NOIP 模拟 $13\; \text{玄学题}$

    题解 题如其名,是挺玄学的. 我们发现每个值是 \(-1\) 还是 \(1\) 只与它的次数是奇是偶有关,而 \(\sum_j^{j\le m}d(i×j)\) 又只与其中有多少个奇数有关 对于 \( ...

  2. NOIP 模拟 $13\; \text{卡常题}$

    题解 一道环套树的最小点覆盖题目,所谓环套树就是有在 \(n\) 个点 \(n\) 条边的无向联通图中存在一个环 我们可以发现其去掉一条环上的边后就是一棵树 那么对于此题,我们把所有 \(x\) 方点 ...

  3. NOIP模拟13「工业题·卡常题·玄学题」

    T1:工业题 基本思路   这题有一个重要的小转化: 我们将原来的函数看作一个矩阵,\(f(i,j-1)*a\)相当于从\(j-1\)向右走一步并贡献a,\(f(i-1,j)*b\)相当于从\(i-1 ...

  4. 2021.5.22 noip模拟1

    这场考试考得很烂 连暴力都没打好 只拿了25分,,,,,,,,好好总结 T1序列 A. 序列 题目描述 HZ每周一都要举行升旗仪式,国旗班会站成一整列整齐的向前行进. 郭神作为摄像师想要选取其中一段照 ...

  5. 5.23考试总结(NOIP模拟2)

    5.23考试总结(NOIP模拟2) 洛谷题单 看第一题第一眼,不好打呀;看第一题样例又一眼,诶,我直接一手小阶乘走人 然后就急忙去干T2T3了 后来考完一看,只有\(T1\)骗到了\(15pts\)[ ...

  6. [考试总结]noip模拟6

    我好菜啊 真上次第二这次倒二... 因为昨天还没有改完所有的题所以就留到今天来写博客了 这次考试总结的教训有很多吧,反正处处体现XIN某人的laji,自己考试的是后本以为一共四个题目,三个题目都没有看 ...

  7. Noip模拟13 2021.7.13:再刚题,就剁手&&生日祭

    T1 工业题 这波行列看反就非常尴尬.....口糊出所有正解想到的唯独行列看反全盘炸列(因为和T1斗智斗勇两个半小时...) 这题就是肯定是个O(n+m)的,那就往哪里想,a,b和前面的系数分开求,前 ...

  8. NOIP模拟

    1.要选一个{1,2,...n}的子集使得假如a和b在所选集合里且(a+b)/2∈{1,2,...n}那么(a+b)/2也在所选集合里 f[i]=2*f[i-1]-f[i-2]+g[i] g[n]:选 ...

  9. NOIP模拟3

    期望得分:30+90+100=220 实际得分:30+0+10=40 T1智障错误:n*m是n行m列,硬是做成了m行n列 T2智障错误:读入三个数写了两个%d T3智障错误:数值相同不代表是同一个数 ...

随机推荐

  1. vue(16)vue-cli创建项目以及项目结构解析

    vue-cli创建项目 上一篇我们安装了vue-cli,接下来我们就使用该脚手架进行创建项目 1.进入一个目录,创建项目 创建项目命令如下: vue create <Project Name&g ...

  2. Python小白的数学建模课-B6. 新冠疫情 SEIR 改进模型

    传染病的数学模型是数学建模中的典型问题,常见的传染病模型有 SI.SIR.SIRS.SEIR 模型. SEIR 模型考虑存在易感者.暴露者.患病者和康复者四类人群,适用于具有潜伏期.治愈后获得终身免疫 ...

  3. ctf之抄错的字符

    题目信息如图所示 得知该题为密码学问题 像英文的字母有 i=1,g=9,s=5,z=2 还有部分小写抄成了大写,搜索一段php代码测试 <?php $list=[]; function fun( ...

  4. Spring MVC中的M V C

    M→Model 模型 V→View 视图 C→Controller 控制器 也就是说一次交互由生到死(请求到相应) 需要经过 这三个层级 来完成 那么为什么这么设计 这么设计又有什么好处 我是这么认为 ...

  5. C语言枚举类型

    在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等.以每周七天为例,我 ...

  6. 6 Java基础整理 第六-八章

    1.封装 封装的目的是简化编程和增强安全性. 简化编程是指,封装可以让使用者不必了解具体类的内部实现细节,而只是要通过提供给外部访问的方法来访问类中的属性和方法 增强安全性是指,封装可以使某个属性只能 ...

  7. 期望长度P1365,CF235B,P1654

    期望长度 定义 这里期望长度表示一段序列连续长度的期望.具体来说,对于一段序列,每个点都有一个概率连续和断开.求所有连续序列和的期望. 当然,对于以上期望长度的定义,我们只需要求出每个点存在的期望的和 ...

  8. python爬虫--案例分析之针对简单的html文件

    python爬虫常用的库:Python 库(urllib.BeautifulSoup.requests.scrapy)实现网页爬虫 python爬虫最简单案例分析:  对一个html文件进行分解,获取 ...

  9. 论文笔记:(2019CVPR)PointConv: Deep Convolutional Networks on 3D Point Clouds

    目录 摘要 一.前言 1.1直接获取3D数据的传感器 1.2为什么用3D数据 1.3目前遇到的困难 1.4现有的解决方法及存在的问题 二.本文idea 2.1 idea来源 2.2 初始思路 2.3 ...

  10. 大数据学习(10)—— Hive进阶

    前面提到了Hive的知识点非常零散,我不知道该怎么把这些知识点分类,跟SQL关系没那么大的就放在这一篇吧. Hive Serde 参考Hive Serde Serde是啥 Serde是序列化和反序列化 ...