[CSP-S模拟测试]:工业题/a(数学)
题目传送门(内部题39)
输入格式
第一行:四个正整数$n$、$m$、$a$、$b$。
第二行:$n$个正整数,第$i$个表示$f(i,0)$。
第三行:$m$个正整数,第$i$个表示$f(0,i)$。
输出格式
第一行:一个整数,代表$f(n,m)\mod 998244353$。
样例
样例输入:
4 4 3 2
1 3 5 7
2 4 6 8
样例输出:
数据范围与提示
$20\%$的数据:$n,m\leqslant 10,a,b\leqslant 3,f(i,0),f(0,i)\leqslant 10$。
$50\%$的数据:$n,m\leqslant {10}^3$。
另外$10\%$的数据:$n=1$。
另外$10\%$的数据:$a=b=1$。
另外$10\%$的数据:$f(i,0)=f(0,i)=1$。
$100\%$的数据:$n,m\leqslant 3\times {10}^5$,其他所有输入数据均在$long\ long$范围内。
题解
对于每一个点$(i,j)$,其到点$(n,m)$的向每个方向需要走的步数都是确定的,走法可以通过组合数计算。
于是点$(i,j)$对答案的贡献就是$f(i,j)\times$走法数$\times a^{m-i}\times b^{n-i}$。
预处理组合数,用快速幂统计答案即可。
时间复杂度:$\Theta(n\log n+m\log m)$。
期望得分:$100$分。
实际得分:$100$分。
代码时刻
#include<bits/stdc++.h>
using namespace std;
const long long mod=998244353;
long long n,m;
long long a,b;
long long p[300010],q[300010];
long long fac[600010],inv[600010];
long long ans;
long long qpow(long long x,long long y)
{
long long res=1;
while(y)
{
if(y&1)res=res*x%mod;
x=x*x%mod;
y>>=1;
}
return res;
}
long long C(long long x,long long y){return 1LL*fac[x]*inv[x-y]%mod*inv[y]%mod;}
int main()
{
scanf("%lld%lld%lld%lld",&n,&m,&a,&b);
a=(a+mod)%mod;
b=(b+mod)%mod;
for(long long i=1;i<=n;i++){scanf("%lld",&p[i]);p[i]=(p[i]+mod)%mod;}
for(long long i=1;i<=m;i++){scanf("%lld",&q[i]);q[i]=(q[i]+mod)%mod;}
fac[0]=inv[0]=1;
for(long long i=1;i<=n+m;i++)
fac[i]=1LL*fac[i-1]*i%mod;
inv[n+m]=qpow(fac[n+m],mod-2);
for(long long i=n+m;i;i--)
inv[i-1]=1LL*inv[i]*i%mod;
for(long long i=1;i<=n;i++)
ans=(ans+C(n+m-1-i,m-1)*qpow(a,m)%mod*qpow(b,n-i)%mod*p[i]%mod)%mod;
for(long long i=1;i<=m;i++)
ans=(ans+C(n+m-1-i,n-1)*qpow(b,n)%mod*qpow(a,m-i)%mod*q[i]%mod)%mod;
printf("%lld",ans);
return 0;
}
rp++
[CSP-S模拟测试]:工业题/a(数学)的更多相关文章
- [CSP-S模拟测试]:玄学题/c(数学)
题目传送门(内部题40) 输入格式 第一行:两个正整数$n$.$m$. 输出格式 第一行:一个整数,代表式子的值. 样例 样例输入1: 4 5 样例输出1: 0样例输入2: 799 8278 样例输出 ...
- [CSP-S模拟测试]:C(倍增+数学)
题目传送门(内部题152) 输入格式 第一行两个整数$N,Q$. 接下来一行$N$个整数,第$i$个为$a_i$. 接下来的$N-1$行,每行两个整数$u,v$.表示$u,v$之间有一条边. 接下来的 ...
- [CSP-S模拟测试]:B(DP+数学)
题目传送门(内部题45) 输入格式 第一行$3$个整数$n,m,P$.第二行$m$个整数,表示$m$次询问. 输出格式 一行$m$个整数表示答案. 样例 样例输入1: 2 4 40 1 2 3 样例输 ...
- [CSP-S模拟测试]:物理课(数学)
题目传送门(内部题144) 输入格式 从$physics.in$读入数据. 第一行一个数$T$,代表有$T$组数据.接下来$T$行每行$4$个浮点数,分别为$\theta,v,d,g$,保留到小数点后 ...
- [CSP-S模拟测试]:最大或(数学)
题目传送门(内部题141) 输入格式 输入文件包含多组测试数据,第一行为一个正整数$T$,表示数据组数. 接下来$T$行,每行两个正整数$l,r$.数据保证$l\leqslant r$成立. 输出格式 ...
- [CSP-S模拟测试]:平方数(数学+哈希)
题目传送门(内部题137) 输入格式 第一行,一个正整数$n$. 第二行$n$个正整数$a_1\sim a_n$. 输出格式 输出一个整数,为满足条件的二元组个数. 样例 样例输入: 51 2 3 4 ...
- [CSP-S模拟测试]:简单计算(数学)
题目传送门(内部题104) 输入格式 第一行一个正整数$T$,表示该测试点内的数据组数,你需要对该测试点内的$T$组数据都分别给出正确的答案才能获得该测试点的分数. 接下来$T$组数据,每组数据一行两 ...
- [CSP-S模拟测试]:位运算(数学)
题目传送门(内部题72) 输入格式 输入文件$bit.in$ 每个输入文件包含$T$组测试数据.输入文件的第一行为一个整数$T$,表示数据组数.接下来$T$行,每行表示一组测试数据每组测试数据包括三个 ...
- [CSP-S模拟测试]:导弹袭击(数学+凸包+单调栈)
题目背景 $Guess$准备向敌军阵地发起进攻了!$Guess$的武器是自动制导导弹.然而在机房是不允许游戏的,所以班长$XZY$对游戏界面进行了降维打击,结果... 题目描述 众所周知,环境因素对导 ...
随机推荐
- 【HDOJ6579】Operation(线性基)
题意:给定一个数列a,给定两种操作: 1.询问[l,r]区间内最大的xor和 2.n++,a[n]赋值为x 要求强制在线 n,m<=5e5,a[i]<2^30 思路:同CF1100F 固定 ...
- Appium运行报错:No Chromedriver found that can automate Chrome '39.0.0'
运行appium切换webview时候遇到报错:’No Chromedriver found that can automate Chrome 'xx.xx.xx' 此报错是因为Appium在运行过程 ...
- AcWing 312. 乌龟棋 (简单DP)打卡
题目:https://www.acwing.com/problem/content/description/314/ 题意:有一段路,每个格子都有个价值,然后有m张卡牌,四种类型,走1,2,3,4步, ...
- mysql捕捉所有SQL语句
MySQL可以通过开通general_log参数(可动态修改)来扑捉所有在数据库执行的SQL语句.显示参数:mysql> show variables like 'general%log%';+ ...
- 小程序BUTTON点击,去掉背景色
添加hover-class <button form-type="submit" hover-class="btn-hover"></but ...
- Windows盘符切换,Dos命令
>>.常用Dos命令 dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前目录 copy 拷贝文件 diskcopy 复制磁盘 del 删除文件 format 格式化 ...
- C++中的类型转换函数
1,转换构造函数可以将普通的基础类型转换为当前的类类型,也有能力将其它类类 型的对象转换为当前的类类型: 2,问题: 1,类类型是否能够类型转换到普通类型? 1,可以的: 3,类型转换函数: 1,C+ ...
- Ptyhon变量,常量,注释
变量的命名规则: 1.变量由字母,数字,下划线搭配而成 2.变量不能以数字开头 3.变量也不能是Python的关键字. 4.变量不要有中文 5.名字要有意义 6.名字不要太长 变量的两种命名方式: 1 ...
- UVA 10256 The Great Divide(凸包划分)
The Great Divide Input: standard input Output: standard output Time Limit: 8 seconds Memory Limit: 3 ...
- 任正非:5G技术只独家卖给美国!不卖给韩国、日本、欧洲
https://v.qq.com/x/page/g3001d0xvxe.html 我只转个标题,细节不管了. 呃,实际上就是说,老任头也决定向美国低头了,对不. 不过,也确实没办法. 该起床吃钙片了.