link

题目大意:给您一个数 n, 每次从n的所有约数(包含1、n)中等概率选出一个约数替换n,重复操作k次,求最后结果期望值%1e9+7。

题解:考虑暴力,我们设f(n,k)代表答案,则有f(n,k)=sum_{d|n}f(d,k-1)。f(n,0)=n。

我们发现如果把n分解质因数,最后结果就是所有质因子若干次方结果乘积(f是积性函数)。

分解质因数后,我们设g(n,k)代表p^n次方执行k次的结果,由于n是log级别的,所以可以直接dp了。

最后得到了p^0…p^n的分布,加起来乘到答案里就行了。

代码

#include <cstdio>
using namespace std;const int xkj = 1000000007;long long n, k, tmp;
long long d[30];
int p[30], tot;
int f[60], g[60], inv[60];int qpow(int x, int y)
{int res = 1;for (x %= xkj; y > 0; y >>= 1, x = x * (long long)x % xkj)if (y & 1) res = res * (long long)x % xkj;return res;
}int work(long long p, int m)
{for (int i = 0; i < m; i++) f[i] = 0;f[m] = 1;for (int t = 1; t <= k; t++){for (int i = 0; i <= m; i++) g[i] = 0;for (int i = 0; i <= m; i++){f[i] = f[i] * (long long)inv[i + 1] % xkj;for (int j = 0; j <= i; j++){g[j] = (g[j] + f[i]) % xkj;}}for (int i = 0; i <= m; i++) f[i] = g[i];}int res = 0, tmp = 1; p %= xkj;for (int j = 0; j <= m; j++) res = (res + f[j] * (long long)tmp % xkj) % xkj, tmp = tmp * p % xkj;return res;
}int main()
{scanf("%lld%lld", &n, &k); tmp = n;for (int i = 0; i < 60; i++) inv[i] = qpow(i, xkj - 2);for (int i = 2; i * (long long)i <= n; i++){if (tmp % i == 0){d[++tot] = i, p[tot] = 1, tmp /= i;while (tmp % i == 0) tmp /= i, p[tot]++;}}if (tmp > 1) d[++tot] = tmp, p[tot] = 1;int ans = 1;for (int i = 1; i <= tot; i++) ans = ans * (long long)work(d[i], p[i]) % xkj;printf("%d\n", ans);return 0;
}

转载于:https://www.cnblogs.com/oier/p/10596729.html

CF1097D Makoto and a Blackboard(期望)相关推荐

  1. Makoto and a Blackboard

    Makoto and a Blackboard 题解 我们定义为n操作k次的期望个数,那么,其中x为d的约数个数. 而n的约数个数可以在的时间内求出,于是总时间就是. 对于一个质数n,答案是. 那么对 ...

  2. Codeforces Hello 2019 D. Makoto and a Blackboard[DP+数论+概率期望]

    题意:给出n和k,n每次会等概率的变成n的一个因子,问这样k次以后的期望大小 每个质因子贡献独立,变成一个因子就相当于变了质因子的次数 所以分解质因数以后对每个质因子做dp #include < ...

  3. codeforces 1097 Hello 2019

    又回来了.. A - Gennady and a Card Game 好像没什么可说的了. #include<bits/stdc++.h> using namespace std;char ...

  4. [NOI2005]聪聪与可可(期望dp)

    题意:给一张无向图,有一只猫和一只老鼠,猫每秒会向老鼠的方向移动两个单位,若它们的距离为一,那么只会移动一个单位,老鼠会等概率向周围移动一步或不动,求猫抓到老鼠的期望时间. Solution luog ...

  5. 洛谷P4316 绿豆蛙的归宿(期望)

    题意翻译 「Poetize3」 题目背景 随着新版百度空间的上线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 题目描述 给出一个有向无环图,起点为1终点为N,每条边都有一个长度,并且从起点出 ...

  6. LightOJ - 1038 Race to 1 Again 基础期望概率 dp

    传送门 刚刚学习期望&概率 我们设数X的期望改变次数为P[X] 如果要求X的期望,很容易想到找x的因子; 可以得到下式  ,cnt为X因子个数,ai为X的因子 可以这么理解,当因子ai为1时, ...

  7. 强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例----Sarsa算法, Q学习, 期望Sarsa算法

    强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例 5.1 TD预测 例5.1 回家时间的估计 5.2 TD预测方法的优势 例5.2 随机移动 5.3 ...

  8. 强化学习(一)- 强化学习介绍、Markov决策过程和贝尔曼期望方程

    强化学习(英语:Reinforcement learning,简称RL)是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益.其灵感来源于心理学中的行为主义理论,即有机体如何在环境给 ...

  9. nyoj——297(期望)

    GoroSort 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 Goro has 4 arms. Goro is very strong. You don't mess ...

最新文章

  1. 开关电源输出整流二极管
  2. oracle断开不活跃链接,活跃进程连接导致数据库迟迟未关闭
  3. 数据仓库ods层是啥意思_数据仓库和数据分层
  4. mysql改了排序规则不生效_Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题...
  5. Web开发中实用小工具
  6. R语言之随机数与抽样模拟篇
  7. Linux操作系统 和 Windows操作系统 的区别
  8. CCIE学习(18)——HSRP、VRRP和GLBP
  9. 撤销工作表保护密码忘记了怎么办?
  10. orcl导入dmp语句_oracle用imp导入dmp文件的方法
  11. 【CityHunter】Unity3D设计AR探索模式
  12. Cesium for UE4 4.27 demo实现代码
  13. 计算机毕业设计基于asp.net的旅游网站
  14. Edge 浏览器 URLSearchParams bug 修复
  15. 一分钟了解Mysql的间隙锁——《深究Mysql锁》
  16. ubuntu16.04 设置静态ip
  17. Mini CFA 考试练习题 Industry Overview
  18. 沪嘉杭共建G60科创走廊
  19. Unity摄像机视野切换
  20. 手把手教你做出数据可视化项目--波士顿矩阵模型

热门文章

  1. 阿里云OSS存储开发
  2. 在windows上搭建react-native的android环境
  3. 【高级数据结构】[SPOJ QTREE]树链剖分/动态树各一模板
  4. 《Code Complete》ch.15 使用条件语句
  5. OWC的问题——散点图与折线图如何才能同时显示
  6. vb.net 如何从文件中读取图像
  7. oddo docker 安装
  8. Google发布了Tensorflow Lite,用于移动电话的神经网络库
  9. 高动态范围图像-单图
  10. 【CCAI大咖秀】AlphaGo/Mobileye教父:智能科学需要融合机器学习、计算神经科学与认知科学