金箱子

news/2024/11/17 23:58:01/文章来源:https://www.cnblogs.com/zhengchenxi/p/18374464

我们设 \(f[i][j]\)表示目前前 \(i\) 个宝箱的期望贡献的 \(j\) 次方。

根据题意可得 $f[i][k]=(f[i-1][1]+a[i])^k \cdot p[i]+(f[i-1][1]+b[i])^k \cdot (1-p[i]) $

这个式子很难处理,不妨用二项式定理优化

优化后式子则为:\(f[i][k]= \sum _{j=0}^{k} C_{k}^{j} \cdot f[i-1][j] \cdot a[i]^{k-j} \cdot p[i]+ \sum _{j=0}^{k}f[i-1][j] \cdot b[i]^{k-j} \cdot (1-p[i])\)

合并一下

\(f[i][k]= \sum _{j=0}^{k} C_{k}^{j} \cdot f[i-1][j] \cdot (a[i]^{k-j} \cdot p[i] +b[i]^{k-j} \cdot (1-p[i]) )\)

到这里我们就可以在 \(O(nk)\) 预处理\((a[i]^{k-j} \cdot p[i] +b[i]^{k-j} \cdot (1-p[i]) )\),再 \(O(nk^2)\) 转移了。

using namespace std;#define int long long
const int N=1e4+107;
const int mod=998244353;int n,k;
int p[N],a[N],b[N];int read()
{int f=1,s=0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){s=(s<<1)+(s<<3)+(ch^48);ch=getchar();}return f*s;
}int qpow(int a,int b)
{int ans=1;while(b){if(b&1) ans=ans*a%mod;b=b>>1;a=a*a%mod;}return ans;
}int ans=0;
int fac[200],inv[N];
void init()
{fac[0]=inv[0]=1;for(int i=1;i<120;i++){fac[i]=fac[i-1]*i%mod;inv[i]=qpow(fac[i],mod-2);}
}int C(int n,int m){return fac[n]*inv[n-m]%mod*inv[m]%mod;}int f[N][120],tmp[N][120];
signed main()
{init();n=read(),k=read();for(int i=1;i<=n;i++){p[i]=read(),a[i]=read(),b[i]=read();}int sum=0;for(int i=1;i<=n;i++){tmp[i][0]=f[i][0]=1;for(int j=1;j<=k;j++){tmp[i][j]=(qpow(a[i],j)*p[i]%mod+qpow(b[i],j)*(1-p[i]+mod)%mod)%mod;}}for(int i=1;i<=k;i++){f[1][i]=tmp[1][i];}for(int i=2;i<=n;i++){for(int j=1;j<=k;j++){for(int g=0;g<=j;g++){f[i][j]=(f[i][j]+f[i-1][g]*C(j,g)%mod*tmp[i][j-g]%mod)%mod;}}}printf("%lld",f[n][k]);return 0;
}`

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/785538.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PHP安全】demo3:最简单的php代码加密方法

当我们说 "PHP代码加密",我理解的是将 PHP 代码进行混淆或加密,以防止源代码被他人轻易阅读或修改。 这种需求通常用于保护商业秘密或加强代码安全性。常见的工具是使用专业的编译器和加密工具。 然而,请注意,完全保护代码是不可能的,因为最终服务器仍然需要能够…

博客园-awescnb插件-geek皮肤优化--公众号卡片

简介 博客园-awescnb插件-geek皮肤暂不支持配置展示公众号二维码,此文章目的使用手动注入方式自定义实现公众号卡片效果 效果展示公众号卡片动态效果鼠标移入前为公众号指引页 鼠标移入后显示公众号二维码 切换动画为动态反转首页展示实现在博客日历元素blog-calendar前插入自…

Flannel Wireguard 模式

Flannel Wireguard 模式Flannel WireGuard 模式 一、环境信息主机 IPubuntu 172.16.94.141软件 版本docker 26.1.4helm v3.15.0-rc.2kind 0.18.0clab 0.54.2kubernetes 1.23.4ubuntu os Ubuntu 20.04.6 LTSkernel 5.11.5 内核升级文档二、安装服务 kind 配置文件信息 $ cat ins…

统一多层网关好处多,阿里云云原生 API 网关打造全能型网关

本文整理自阿里云云原生 API 网关的公测直播,分享了作为一款全能型网关【云原生 API 网关】是如何帮助企业落地统一网关架构的。作者:问思、望宸 网关承载了业务开发和后端运维的诸多需求,例如路由管理、流量调度、API 管理、入口安全管理等,另外网关侧也需要结合服务治理来…

Kubernetes: client-go 源码剖析(一)

kubernetes:client-go 系列文章:Kubernetes: client-go 源码剖析(一) Kubernetes: client-go 源码剖析(二)0. 前言 在看 kube-scheduler 组件的过程中遇到了 kube-scheduler 对于 client-go 的调用,泛泛的理解调用过程总有种隔靴搔痒的感觉,于是调转头先把 client-go 理…

python03-标准库 第三方库-pathlib模块

python标准库:Python自带的一组模块和库,这些模块和库提供了Python编程所需的基础功能和工具 https://docs.python.org/zh-cn/3/library/index.html?eqid=8ca0b3ea000067990000000264800802Python包索引:即PyPI(Python Package Index),是一个仓库,存放了许多可以通过pi…

企业微信如何远程打卡,免费

现在一些定位软件不好用或者要收费,那么如何能够很好的免费实现远程打开呢? 首先需要一个不用的旧手机,一直放在公司里,然后拿自己常用手机远程操作来实现,具体步骤如下:旧手机需要打开开发者模式,然后打开屏幕常亮保证不会锁屏;公司电脑下载scrcpy用来操作连接的旧手机…

JDK新特性:Stream流式编程

Stream流 Stream是Java 8 API添加的一个新的抽象,称为流Stream,以一种声明性方式处理数据集合(侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式)Stream流是从支持数据处理操作的源生成的元素序列,源可以是数组、文件、集合、函数。流不是集合元素,它不是数…

关于智能编码助手【通义灵码】,开发者们这么说...

自通义灵码发布以来,不停地有开发者朋友为我们送上通义灵码的测评反馈。自通义灵码发布以来,不停地有开发者朋友为我们送上通义灵码的测评反馈。 关于通义灵码,开发者这样说 墨问西东 CEO 池建强&墨问研发团队 “通义灵码有一个强大的功能就是企业知识库检索增强,我们只…

.net8 的webapi部署到华为云的操作

首先还是打包到文件夹:我的服务器是X64的centos 8 系统, 所以我的配置如图: 发布后,我没有用它的dockerfile,而是用的docker-compose去编写的docker脚本,如下:services:ticket_manager_Api: # 服务名称container_name: ticket_manager_Api # 容器名称hostname: ticket…

Qt Line Edit焦点丢失|Checkbox转移焦点丢失

在我设计的一个界面中,用事件过滤器获取键盘方向键,通过键盘方向键转移控件的焦点,获取焦点的控件显示高亮,在从一个Checkbox控件转移焦点到一个Line Edit控件的时候,该获得焦点的控件并没有显示高亮,并且根据后续操作推测焦点消失了,通过qDebug调试发现转移焦点后的那一…

蓝队新手应该学习的 4 个 SOC 工具(如何掌握这些基本的 SOC 工具及其相关技能。)

安全运营中心 (SOC) 分析师依靠各种工具来帮助他们监视他们的域。 然而,仅仅依靠工具来完成工作,而未能理解其背后的基本流程和方法,对于分析师来说可能是一个代价高昂的错误。 我们发现,近三分之一(29.5%)的专业人士认为事件处理流程和方法是SOC 分析师需要掌握的最重要…