Hello 2019 D 素因子贡献法计算期望 + 概率dp + 滚动数组
https://codeforces.com/contest/1097/problem/D
题意
给你一个n和k,问n经过k次操作之后留下的n的期望,每次操作n随机变成一个n的因数
题解
- 概率dp计算出每个素因子留下的概率,乘以这个素因子的值就是这个素因子的贡献期望
- 定义\(dp[i][j]\)为第i次操作后剩下j个素因子的概率,概率dp顺着推
- \(dp[i][j]->dp[i+1][k](k<=j)\)
- \(dp[i+1][k]+=dp[i][j]\frac{1}{j+1}(k<=j)\)
- \(ans=\sum^{cnt}_{i=1}\sum^{num[i]}_{j=0}pr[i]^j*dp[k][j]\)
- 二维滚动数组滚掉一维
代码
#include<bits/stdc++.h>
#define P 1000000007
#define M 32000000
#define MAXN 100
#define ll long long
using namespace std;
ll dp[2][MAXN],inv[MAXN],n,ans=1;
int vi[M],sz,k,pr[M];
void sieve(){
inv[0]=inv[1]=1;
for(int i=2;i<MAXN;i++)inv[i]=(P-P/i)*inv[P%i]%P;
for(ll i=2;i<M;i++){
if(!vi[i])pr[++sz]=i;
for(int j=1;j<=sz&&pr[j]*i<M;j++){
vi[pr[j]*i]=1;
if(i%pr[j]==0)break;
}
}
}
int main(){
sieve();
cin>>n>>k;
for(int i=1;i<=sz&&pr[i]<=n;i++){
int cnt=0;
if(n%pr[i])continue;
while(n%pr[i]==0){
n/=pr[i];
cnt++;
}
memset(dp,0,sizeof(dp)); //
dp[0][cnt]=1;
int st=0;
for(int j=0;j<k;j++){
memset(dp[st^1],0,sizeof(dp[st^1]));
for(int p=0;p<=cnt;p++){
for(int q=0;q<=p;q++){
dp[st^1][q]+=dp[st][p]*inv[p+1]%P;
dp[st^1][q]%=P;
}
}
st^=1;
}
ll mul=1,tp=0;
for(int j=0;j<=cnt;j++){
tp+=dp[st][j]*mul%P;
tp%=P;
mul=mul*pr[i]%P;
}
ans=ans*tp%P; //
}
if(n>1){
memset(dp,0,sizeof(dp));
dp[0][1]=1;
int st=0;
for(int j=0;j<k;j++){
memset(dp[st^1],0,sizeof(dp[st^1]));
for(int p=0;p<=1;p++){
for(int q=0;q<=p;q++){
dp[st^1][q]+=dp[st][p]*inv[p+1]%P;
dp[st^1][q]%=P;
}
}
st^=1;
}
ll mul=1,tp=0;
for(int j=0;j<=1;j++){
tp+=dp[st][j]*mul%P;
tp%=P;
mul=mul*n%P;
}
ans=ans*tp%P;
}
cout<<ans;
}
Hello 2019 D 素因子贡献法计算期望 + 概率dp + 滚动数组的更多相关文章
- 【BZOJ 3652】大新闻 数位dp+期望概率dp
并不难,只是和期望概率dp结合了一下.稍作推断就可以发现加密与不加密是两个互相独立的问题,这个时候我们分开算就好了.对于加密,我们按位统计和就好了;对于不加密,我们先假设所有数都找到了他能找到的最好的 ...
- HDU 3853 期望概率DP
期望概率DP简单题 从[1,1]点走到[r,c]点,每走一步的代价为2 给出每一个点走相邻位置的概率,共3中方向,不动: [x,y]->[x][y]=p[x][y][0] , 右移:[x][y ...
- 【BZOJ 3811】玛里苟斯 大力观察+期望概率dp+线性基
大力观察:I.从输出精准位数的约束来观察,一定会有猫腻,然后仔细想一想,就会发现输出的时候小数点后面不是.5就是没有 II.从最后答案小于2^63可以看出当k大于等于3的时候就可以直接搜索了 期望概率 ...
- 【NOIP模拟赛】黑红树 期望概率dp
这是一道比较水的期望概率dp但是考场想歪了.......我们可以发现奇数一定是不能掉下来的,因为若奇数掉下来那么上一次偶数一定不会好好待着,那么我们考虑,一个点掉下来一定是有h/2-1个红(黑),h/ ...
- BZOJ1415: [Noi2005]聪聪和可可 最短路 期望概率dp
首先这道题让我回忆了一下最短路算法,所以我在此做一个总结: 带权: Floyed:O(n3) SPFA:O(n+m),这是平均复杂度实际上为O(玄学) Dijkstra:O(n+2m),堆优化以后 因 ...
- 期望概率DP
期望概率DP 1419: Red is good Description 桌面上有\(R\)张红牌和\(B\)张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付 ...
- 【BZOJ 2553】[BeiJing2011]禁忌 AC自动机+期望概率dp
我一开始想的是倒着来,发现太屎,后来想到了一种神奇的方法——我们带着一个既有期望又有概率的矩阵,偶数(2*id)代表期望,奇数(2*id+1)代表概率,初始答案矩阵一列,1的位置为1(起点为0),工具 ...
- UVa 11427 Expect the Expected (数学期望 + 概率DP)
题意:某个人每天晚上都玩游戏,如果第一次就䊨了就高兴的去睡觉了,否则就继续直到赢的局数的比例严格大于 p,并且他每局获胜的概率也是 p,但是你最玩 n 局,但是如果比例一直超不过 p 的话,你将不高兴 ...
- 【BZOJ 3925】[Zjoi2015]地震后的幻想乡 期望概率dp+状态压缩+图论知识+组合数学
神™题........ 这道题的提示......(用本苣蒻并不会的积分积出来的)并没有 没有什么卵用 ,所以你发现没有那个东西并不会 不影响你做题 ,然后你就可以推断出来你要求的是我们最晚挑到第几大的 ...
随机推荐
- FineUIPro v6.0.0 大版本更新,快来围观!
本月末(2019-09-20),我们会发布激动人心的 FineUI v6.0.0 版本,这个版本将带来一系列的重要更新! 在列举新版本特性之前,我们先来回顾下每次发布大版本的关键时间点: v1.0.0 ...
- springboot2.0 management.security.enabled无效
在1.5.x版本中通过management.security.enabled=false来暴露所有端点 在使用springcloud的时候,如果基于springboot2的版本的配置中心,无法使用SV ...
- TP框架where条件和whereOr条件同时使用
前言:where里面的条件是 && 的关系,whereOr里面的条件是 | | 的关系, 想要得到的效果: 1.筛选出is_deleted字段为0(未删除)的公告 2.筛选出全部状态为 ...
- ThinkPHP框架获取上一条插入语句产生的id
今天在fastAdmin框架想搞一个拖动进行排序的功能 遇到一个问题是权重的字段值一样的话拖动会出bug,所以想让权重字段(weigh)的值等于当前id的值, 搜索看到的方法如下 实际应用的地方,是写 ...
- 「ASCII 流程图」工具——Graph Easy
https://juejin.im/post/5a09c43451882535c56c6bbf 「ASCII 流程图」工具——Graph Easy // 1. brew install graphvi ...
- 树莓派4B 更新wiringPi库到2.52的方法的wiringPi库2.5.2版本wiringpi-latest.deb下载
树莓派4B 更新wiringPi库到2.52的方法 – 树莓派中文站 http://www.52pi.net/archives/1918 通过如上链接可知,需要通过如下命令下载wiringpi-lat ...
- .net post请求webservice
class Program { static void Main(string[] args) { , name = "jxp" }); var a = HttpHelper.Po ...
- C#中将long浮点数格式化为{H:min:s.ms}格式的字符串的方法
场景 表示时间的数据格式为浮点数,如下: 需要将其格式化为{H:min:s.ms}格式的字符串,效果如下: 注: 博客主页:https://blog.csdn.net/badao_liumang_qi ...
- Docker(二)-在Docker中部署Nginx实现负载均衡(视频教程)
本教程介绍利用Docker部署Nginx服务实现负载均衡. (双击全屏播放)
- 2.原生js实现图片懒加载
网上查了很多图片懒加载的内容, 但基本上都是jQuery实现的, 没有说清楚其原理, 所以研究了一下 多的不说, 上代码, 看不明白的建议看下我的上一篇文章<1. 图解浏览器和用户设备的宽高等属 ...