尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

CF1842G Tenzing and Random Operations题解

CF1842G Tenzing and Random Operations题解
📅 发布时间:2026/7/16 2:46:54

CF1842G Tenzing and Random Operations

题目描述

又一道随机问题。

Tenzing 有一个长度为nnn的数组aaa和一个整数vvv。

Tenzing 将进行mmm次如下操作:

  1. 每次等概率随机选择一个整数iii,满足1≤i≤n1 \leq i \leq n1≤i≤n。
  2. 对所有满足i≤j≤ni \leq j \leq ni≤j≤n的jjj,将aja_jaj​赋值为aj+va_j + vaj​+v。

Tenzing 想知道,经过mmm次操作后,∏i=1nai\prod_{i=1}^n a_i∏i=1n​ai​的期望值是多少,结果对109+710^9+7109+7取模。

形式化地,设M=109+7M = 10^9+7M=109+7。可以证明答案可以表示为最简分数pq\frac{p}{q}qp​,其中ppp和qqq是整数且q≢0(modM)q \not\equiv 0 \pmod{M}q≡0(modM)。请输出等于p⋅q−1 mod Mp \cdot q^{-1} \bmod Mp⋅q−1modM的整数。换句话说,输出一个整数xxx,满足0≤x<M0 \le x < M0≤x<M且x⋅q≡p(modM)x \cdot q \equiv p \pmod{M}x⋅q≡p(modM)。

输入格式

输入的第一行包含三个整数nnn、mmm和vvv(1≤n≤50001\leq n\leq 50001≤n≤5000,1≤m,v≤1091\leq m,v\leq 10^91≤m,v≤109)。

第二行包含nnn个整数a1,a2,…,ana_1,a_2,\ldots,a_na1​,a2​,…,an​(1≤ai≤1091\leq a_i\leq 10^91≤ai​≤109)。

输出格式

输出∏i=1nai\prod_{i=1}^n a_i∏i=1n​ai​的期望值对109+710^9+7109+7取模的结果。

输入输出样例 #1

输入 #1

2 2 5 2 2

输出 #1

84

输入输出样例 #2

输入 #2

5 7 9 9 9 8 2 4

输出 #2

975544726

说明/提示

经过所有mmm次操作后,数组aaa有三种可能的情况:

  1. a1=2,a2=12a_1=2,a_2=12a1​=2,a2​=12,概率为14\frac{1}{4}41​。
  2. a1=a2=12a_1=a_2=12a1​=a2​=12,概率为14\frac{1}{4}41​。
  3. a1=7,a2=12a_1=7,a_2=12a1​=7,a2​=12,概率为12\frac{1}{2}21​。

因此,a1⋅a2a_1\cdot a_2a1​⋅a2​的期望值为14⋅(24+144)+12⋅84=84\frac{1}{4}\cdot (24+144) + \frac{1}{2}\cdot 84=8441​⋅(24+144)+21​⋅84=84。

由 ChatGPT 4.1 翻译

思路

考虑如何使其时间复杂度和m无关。
发现可以考虑设计一个链,i->i+1有a[i]条路,可以每次给所有的增加v条路径。
发现总共经过的增加的路径最多只有n种,考虑设f[i][j]表示到第i条路总共经过了j种不同的时刻增加的路径集合(指所有增加中其经历了j种增加的路径)
f[i+1][j]+=(f[i][j]a[i+1](原本路径)+f[i][j]jv(之前走过的新路))
f[i+1][j+1]+=(f[i][j]
(m-j)(未被选的路径数)v(增加的路径数)(i+1)(选择其开始地点(最初第一个所在地)))
最终答案为所有f[n][i]*n^(m-i) (其他随便)/n^m(总数)

代码

#include<bits/stdc++.h>usingnamespacestd;constlonglongmod=1e9+7;longlongn,m,v,a[5005],f[5005][5005],op=0;longlongpow2(longlonga1,longlongb1){longlongc1=1;while(b1>=1){if(b1%2==1){c1=c1*a1%mod;}a1=a1*a1%mod;b1/=2;}returnc1;}intmain(){cin>>n>>m>>v;for(inti=1;i<=n;i++){cin>>a[i];}f[0][0]=1;for(inti=0;i<=n-1;i++){for(intj=0;j<=min((longlong)i,m);j++){f[i+1][j]=(f[i+1][j]+f[i][j]*(a[i+1]+(longlong)j*v%mod))%mod;f[i+1][j+1]=(f[i+1][j+1]+f[i][j]*(i+1)*1ll%mod*(m-j)*1ll%mod*v)%mod;}}for(inti=0;i<=min(n,m);i++){op=(op+f[n][i]*pow2(pow2(n,mod-2),i))%mod;}cout<<op<<endl;return0;}//>>AKIOI<<//

相关新闻

  • 2026吉安本地噪音检测哪家专业?TOP 正规机构榜单 + 环境噪声 + 工业噪音 + 低频噪音检测 附电话地址 - 鉴安检测
  • Flutter与原生iOS结合的Firebase火力全开
  • 2026抖音视频文字提取哪个好用?我实测带免费额度靠谱的只留这一款

最新新闻

  • Claude付费方案延期至7月:技术优势与免费API实战指南
  • 深入解析SAR ADC:从二进制搜索算法到电荷再分配架构
  • DeepSeek-R1本地知识库实战:Ollama+SQLite轻量RAG搭建指南
  • STM32开发板硬件设计与实践指南
  • [特殊字符] 从“笨办法“到“聪明方法“的进化路径
  • Demo 跑得欢,上线就崩?大模型时代求职的“权限与日志”生死线

日新闻

  • Toon Boom Harmony 高效工作流:从节点视图到镜头标记的实战技巧
  • 真力时售后维修电话,为您提供专业腕表保养与故障修复服务权威公示(2026年7月最新) - 亨得利官方服务中心
  • 【C++】类和对象--构造函数进阶(初始化列表与explicit)

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号