Makoto and a Blackboard
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相关推荐
- CF1097D Makoto and a Blackboard(期望)
link 题目大意:给您一个数 n, 每次从n的所有约数(包含1.n)中等概率选出一个约数替换n,重复操作k次,求最后结果期望值%1e9+7. 题解:考虑暴力,我们设f(n,k)代表答案,则有f(n, ...
- Codeforces Hello 2019 D. Makoto and a Blackboard[DP+数论+概率期望]
题意:给出n和k,n每次会等概率的变成n的一个因子,问这样k次以后的期望大小 每个质因子贡献独立,变成一个因子就相当于变了质因子的次数 所以分解质因数以后对每个质因子做dp #include < ...
- codeforces 1097 Hello 2019
又回来了.. A - Gennady and a Card Game 好像没什么可说的了. #include<bits/stdc++.h> using namespace std;char ...
- Blackboard Fibonacci(CF-217B)
Problem Description Fibonacci numbers are the sequence of integers: f0 = 0, f1 = 1, f2 = 1, f3 = 2, ...
- 使用Django Rest Framework和React构建Moodle / Blackboard克隆
In this intermediate Python Django tutorial from JustDjango, you will learn to create a multiple-use ...
- Blackboard在线教学管理平台
Blackboard在线教学管理平台 1. "Blackboard"产品概述 Blackboard在线教学管理平台是目前市场上唯一支持百万级用户的教学平台.拥有美国近50%的市 ...
- CRN: 13506 Learning Management System: Blackboard
SYLLABUS Course Information: CRN: 13506 Term: Spring 2019 Format: Online, Asynchronous Learning Mana ...
- BT4:库中基本类型——Factory和Blackboard
大家好,欢迎大家关注我的知乎专栏慢慢悠悠小马车 BehaviorTreeFactory 定义在BehaviorTree.CPP/include/behaviortree_cpp_v3/bt_facto ...
- Blackboard Collabrate 模拟器打开
由于PC端开启会提示信号差,手机看不方便,最后先后尝试了常用的mumu和雷电之后,均不可连接,选择了bluestack,也就是蓝叠,解决了问题.搭载上网用的,最后满信号看网课了.
最新文章
- Listview 多个ViewHolder实现
- 说实话,这个发布会绝了!
- .NET的两种部署模式,了解一下
- Java对象内存图三
- 【2019杭电多校第二场1005 = HDU6595】Everything Is Generated In Equal Probability(期望-递推)
- 【易实战】SpringCloud Greenwich架构概览深度详解
- 关于5G使用的新型技术小结
- 网易有道最新力作 有道词典笔3 结构拆解
- 软件岗位--CTO、技术VP、技术总监、首席架构师
- 红外线体温计详细制作方案
- QRCode.js:使用 JavaScript 生成二维码
- 电脑的显卡驱动需要更新吗?
- Python爬虫笔记
- 2022年汽车驾驶员(中级)理论题库模拟考试平台操作
- 2018 焦作 onsite E - Resistors in Parallel(数学或规律+大数)
- 论文中英文摘要、目录、每章的页眉不同,页脚处的页码自动连续设置方法
- dmc预测控制 matlab,预测控制动态矩阵DMC算法研究分析及仿真.doc
- 揭开虚拟主机供应商的面纱(转)
- 开发人员(程序员)怎么写技术文档
- 自旋锁和互斥锁的区别 java中lock Syntronized区别
热门文章
- 男方31岁没有存款,有车无房,又不想靠父母,觉得父母很辛苦,该嫁吗?
- element 树形表格报Error: for nested data item, row-key is required
- ASEMI代理ADM706SARZ-REEL原装ADI车规级ADM706SARZ-REEL
- 天纵智能软件快速开发平台标准列表数据管理插件
- 微信小程序 LBS 能力全面解析
- 微信小程序 界面从右边滑出_微信小程序侧边栏滑动特效(左右滑动)
- 华为OD题目: 货币单位换算
- JavaScript-老杜
- 抖音短视频账号怎么运营,如何提高账号权重?
- 13章、Java泛型——泛型的定义与作用