Makoto and a Blackboard

题解

我们定义为n操作k次的期望个数,那么,其中x为d的约数个数。

而n的约数个数可以在的时间内求出,于是总时间就是

对于一个质数n,答案是

那么对于,其中p为质数。那么就可以用dp来解决这个问题。

表示经过i次操作,数变为的概率。

可得转移方程式为

而答案就为

因为这是一个积性函数,所以可得答案

于是,我们把n分解质因数后的答案乘起来即可。

于是就可以以的时间复杂度求出来了。

源码

#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;
#define MAXN 1000005
typedef long long LL;
#define int LL
const LL mo=1e9+7;
typedef pair<double,int> pii;
#define gc() getchar()
template<typename _T>
void read(_T &x){_T f=1;x=0;char s=gc();while(s>'9'||s<'0'){if(s=='-')f=-1;s=gc();}while(s>='0'&&s<='9'){x=(x<<3)+(x<<1)+(s^48);s=gc();}x*=f;
}
template<typename _T>
_T Fabs(_T x){return x<0?-x:x;}
int n,m,prime[MAXN],cntp,ans,sum;
int dis[MAXN],dp[10005][50],inv[65];
void init(int x){for(int i=2;i*i<=x;i++){if(x%i==0)prime[++cntp]=i;while(x%i==0)x/=i,++dis[cntp];}if(x!=1)prime[++cntp]=x,dis[cntp]++;
}
int qkpow(int a,int s){int t=1;while(s){if(s&1)t=t*a%mo;s>>=1;a=a*a%mo;}return t;
}
signed main(){read(n);read(m);init(n);ans=1;for(int i=1;i<=60;i++)inv[i]=qkpow(i,mo-2);for(int T=1;T<=cntp;T++){memset(dp,0,sizeof(dp));dp[0][dis[T]]=1;int sum=0;for(int i=1;i<=m;i++)for(int j=0;j<=dis[T];j++)for(int k=j;k<=dis[T];k++)dp[i][j]=(dp[i-1][k]*inv[k+1]%mo+dp[i][j])%mo;for(int i=0;i<=dis[T];i++){sum=(sum+dp[m][i]*qkpow(prime[T]%mo,i)%mo)%mo;//printf("%d %d:%d\n",m,i,dp[m][i]); }ans=ans*sum%mo;}printf("%lld",ans);return 0;
}

谢谢!!!

Makoto and a Blackboard相关推荐

  1. CF1097D Makoto and a Blackboard(期望)

    link 题目大意:给您一个数 n, 每次从n的所有约数(包含1.n)中等概率选出一个约数替换n,重复操作k次,求最后结果期望值%1e9+7. 题解:考虑暴力,我们设f(n,k)代表答案,则有f(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. Blackboard Fibonacci(CF-217B)

    Problem Description Fibonacci numbers are the sequence of integers: f0 = 0, f1 = 1, f2 = 1, f3 = 2, ...

  5. 使用Django Rest Framework和React构建Moodle / Blackboard克隆

    In this intermediate Python Django tutorial from JustDjango, you will learn to create a multiple-use ...

  6. Blackboard在线教学管理平台

    Blackboard在线教学管理平台 1. "Blackboard"产品概述   Blackboard在线教学管理平台是目前市场上唯一支持百万级用户的教学平台.拥有美国近50%的市 ...

  7. CRN: 13506 Learning Management System: Blackboard

    SYLLABUS Course Information: CRN: 13506 Term: Spring 2019 Format: Online, Asynchronous Learning Mana ...

  8. BT4:库中基本类型——Factory和Blackboard

    大家好,欢迎大家关注我的知乎专栏慢慢悠悠小马车 BehaviorTreeFactory 定义在BehaviorTree.CPP/include/behaviortree_cpp_v3/bt_facto ...

  9. Blackboard Collabrate 模拟器打开

    由于PC端开启会提示信号差,手机看不方便,最后先后尝试了常用的mumu和雷电之后,均不可连接,选择了bluestack,也就是蓝叠,解决了问题.搭载上网用的,最后满信号看网课了.

最新文章

  1. Listview 多个ViewHolder实现
  2. 说实话,这个发布会绝了!
  3. .NET的两种部署模式,了解一下
  4. Java对象内存图三
  5. 【2019杭电多校第二场1005 = HDU6595】Everything Is Generated In Equal Probability(期望-递推)
  6. 【易实战】SpringCloud Greenwich架构概览深度详解
  7. 关于5G使用的新型技术小结
  8. 网易有道最新力作 有道词典笔3 结构拆解
  9. 软件岗位--CTO、技术VP、技术总监、首席架构师
  10. 红外线体温计详细制作方案
  11. QRCode.js:使用 JavaScript 生成二维码
  12. 电脑的显卡驱动需要更新吗?
  13. Python爬虫笔记
  14. 2022年汽车驾驶员(中级)理论题库模拟考试平台操作
  15. 2018 焦作 onsite E - Resistors in Parallel(数学或规律+大数)
  16. 论文中英文摘要、目录、每章的页眉不同,页脚处的页码自动连续设置方法
  17. dmc预测控制 matlab,预测控制动态矩阵DMC算法研究分析及仿真.doc
  18. 揭开虚拟主机供应商的面纱(转)
  19. 开发人员(程序员)怎么写技术文档
  20. 自旋锁和互斥锁的区别 java中lock Syntronized区别

热门文章

  1. 男方31岁没有存款,有车无房,又不想靠父母,觉得父母很辛苦,该嫁吗?
  2. element 树形表格报Error: for nested data item, row-key is required
  3. ASEMI代理ADM706SARZ-REEL原装ADI车规级ADM706SARZ-REEL
  4. 天纵智能软件快速开发平台标准列表数据管理插件
  5. 微信小程序 LBS 能力全面解析
  6. 微信小程序 界面从右边滑出_微信小程序侧边栏滑动特效(左右滑动)
  7. 华为OD题目: 货币单位换算
  8. JavaScript-老杜
  9. 抖音短视频账号怎么运营,如何提高账号权重?
  10. 13章、Java泛型——泛型的定义与作用