题意:现在有一个数写在黑板上,它以等概率转化为它的一个约数,可以是1,问经过k次转化后这个数的期望值 题解:如果这个数是一个素数的n次方,那么显然可以用动态规划来求这个数的答案,否则的话,就对每个素因数求答案,再相乘 参考博客:https://www.cnblogs.com/birchtree/p/10234203.html ac代码: #include<bits/stdc++.h> #define ll long long #define pa pair<int,int> usi…
Makoto has a big blackboard with a positive integer n written on it. He will perform the following action exactly k times: Suppose the number currently written on the blackboard is v . He will randomly pick one of the divisors of v (possibly 1 and v)…
题目传送门 题目大意: 给出一个n和k,每次操作可以把n等概率的变成自己的某一个因数,(6可以变成1,2,3,6,并且概率相等),问经过k次操作后,期望是多少? 思路:数学和期望dp  好题好题!! 直接考虑n到因子很难做,所以要研究从n到因子的一些性质. 如果一个数可以写成,p^c这样的形式,并且p是质数,那么如果把这个数进行上述的操作,他可以变成的形式必然是p^x(0<=x<=c),并且每个数的概率是平均的. 所以对于这样的数,我们可以得出dp方程,i表示第几次操作,j表示p^j. dp[…
[Luogu-CF1097D] 给定 \(n,k\)一共会进行 \(k\) 次操作 , 每次操作会把 \(n\) 等概率的变成 \(n\) 的某个约数 求操作 \(k\) 次后 \(n\) 的期望是多少 题解 \(f[i][j]\) 表示以某质数的 \(i\) 次方经过 \(j\) 次操作后的结果 发现答案是积性的 , 质因数分解后转移 \(f[n][k]∗f[m][k]=f[nm][k] (gcd(n,m)=1)\) 对于\(f[i][j]\)的转移 : \(f[i][j]=\frac{1}{…
题目地址:CF1097D Makoto and a Blackboard 首先考虑 \(n=p^c\) ( \(p\) 为质数)的情况,显然DP: 令 \(f_{i,j}\) 为第 \(i\) 次替换后出现 \(p^j\) 的概率 边界: \[f_{0,c}=1\] 状态转移方程: \[f_{i,j}=\sum_{t=j}^{c} \frac{f_{i-1,t}}{t+1}\] 目标: \[\sum_{j=0}^{c}\ f_{k,j}\ p^j\] 考虑一般情况,将 \(n\) 分解质因数:…
又回来了.. A - Gennady and a Card Game 好像没什么可说的了. #include<bits/stdc++.h> using namespace std; char gc() { static char buf[100000],*p1,*p2; return (p1==p2)&&(p2=(p1=buf)+fread(buf,1,100000,stdin))?EOF:*p1++; return getchar(); } template<class…
题目链接:http://codeforces.com/contest/219/problem/D 树dp //#pragma comment(linker, "/STACK:102400000, 102400000") #include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #include…
[CodeForces - 1272D] Remove One Element [线性dp] 标签:题解 codeforces题解 dp 线性dp 题目描述 Time limit 2000 ms Memory limit 262144 kB Source Codeforces Round #605 (Div. 3) Tags brute force   dp   *1500 Site https://codeforces.com/problemset/problem/1272/D 题面 Exam…
Codeforces 878 E. Numbers on the blackboard 解题思路 有一种最优策略是每次选择最后面一个大于等于 \(0\) 的元素进行合并,这样做完以后相当于给这个元素乘 \(2\) ,并且不使前面一个元素的值增加了.但是按照这样的策略做不太好维护,考虑做完以后有许多块,除了第一个块以外每一个块都是负的,然后将这些块与第一个块合并.那么用并查集维护一下每个块,每一个元素被乘 \(2\) 的次数就是这个块里面位置比它小的元素个数.定义一个块的和为每个元素乘上其对应系数…
Makoto and a Blackboard time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Makoto has a big blackboard with a positive integer nn written on it. He will perform the following action exactly k…