题意 题目链接 Sol 首先不难想到一种暴力dp,设\(f[i][a][b][c]\)表示还有\(i\)轮没打,场上有\(a\)个1血,\(b\)个2血,\(c\)个三血 发现状态数只有\(s = 166\)个,复杂度为\(O(ns)\) 矩乘优化一下复杂度为\(O(s^3 logn T)\),还是过不去. 因为每次询问都是独立的,那么可以预处理出\(2^i\)的转移矩阵,回答询问只需要拿一个行向量去乘log个矩阵 构造矩阵的时候可以加一个列向量表示期望 #include<bits/stdc++…
题目描述 你有一个m点生命值的奴隶主,奴隶主受伤未死且当前随从数目不超过k则再召唤一个m点生命值的奴隶主. T次询问,每次询问如果如果对面下出一个n点攻击力的克苏恩,你的英雄期望会受到到多少伤害. 输入 输入第一行包含三个正整数 T,m,k ,T 表示询问组数,m,k 的含义见题目描述. 接下来 T 行,每行包含一个正整数 n ,表示询问进行 n 次攻击后扣减Boss的生命值点数的期望. 输出 输出共 T 行,对于每个询问输出一行一个非负整数,表示该询问的答案对 998244353 取模的结果.…
[UOJ#340][清华集训2017]小 Y 和恐怖的奴隶主(矩阵快速幂,动态规划) 题面 UOJ 洛谷 题解 考虑如何暴力\(dp\). 设\(f[i][a][b][c]\)表示当前到了第\(i\)次攻击,还剩下的\(1,2,3\)血的奴隶主个数为\(a,b,c\)的概率,每次考虑打到了哪里,做一个转移. 这样子,状态数就是把不超过\(8\)个东西分配到\(3\)个集合中,状态有\(165\)种,再加一个状态记录糊脸上的期望,也就是\(166\)个状态. 直接矩乘优化,那么单次的复杂度就是\(…
#2325. 「清华集训 2017」小Y和恐怖的奴隶主 内存限制:256 MiB时间限制:2000 ms标准输入输出 题目类型:传统评测方式:文本比较   题目描述 "A fight? Count me in!" 要打架了,算我一个. "Everyone, get in here!" 所有人,都过来! 小Y是一个喜欢玩游戏的OIer.一天,她正在玩一款游戏,要打一个Boss. 虽然这个Boss有 1010010^{100}10​100​​ 点生命值,但它只带了一个随…
题意:中文题,按照题目要求的二叉树生成方式,问(1)叶平均深度 (2)树平均深度 解法:这道题看完题之后完全没头绪,无奈看题解果然不是我能想到的qwq.题解参考https://blog.csdn.net/Maxwei_wzj/article/details/82262755这位大佬的,这里讲下我的理解: 首先是第一问:第一问会简单一些,设f[i]代表叶节点为i的树的叶平均深度,那么因为是平均那么 i*f[i] 就是叶子总深度啦.在叶子深度x下拓展得到的新贡献是 2(x+1)-x=x+2  .那么…
题目:https://www.luogu.org/problemnew/show/P1291 水水的经典期望DP: 输出有毒.(其实也很简单啦) 代码如下: #include<iostream> #include<cstdio> #include<cstring> using namespace std; typedef long long ll; ll n,fz[],fm[],s1,s2,ans,w,w2; //double f[35]; ll gcd(ll x,ll…
正解:dp 解题报告: 传送门! 同样是看到列表发的题解就想着跟着做下dp的题目趴 然后发现还挺难的,,,反正我只大概想到怎么转移但是初始化什么的都不会TT 所以还是大概说下QAQ 首先可以想到设f[i][j][k]表示小a走到(i,j)的位置 与uim毒液值相差j的方案数 g表示uim 然后大力转移这里不难大概写下式子 f[i][j][k]=(f[i][j][k]+g[i-1][j][(k-a[i][j]+v)%v])%mod f[i][j][k]=(f[i][j][k]+g[i][j-1][…
题面在这里 题意 有一个\(Boss\)和他血量为\(m\)的随从奴隶主,每当奴隶主受到攻击且不死,并且\(Boss\)的随从个数\(<k\)时,就会新召唤一个血量为\(m\)的奴隶主.每次攻击\(Boss\)和每个奴隶主的概率是相同的,求\(n\)步后期望对\(Boss\)造成的伤害. \(T\le1000,n\le10^{18},m\le3,k\le8\) sol --- 看到\(m<=3,k<=8\)的良心数据肯定是状压啦 通过暴搜可以得出状态最多只会有\(164\)种 并且两个状…
传送门 uoj上的数据太毒了--也可能是我人傻常数大的缘故-- 三种血量的奴隶主加起来不超过\(8\)个,可以枚举每种血量的奴隶主个数,那么总的状态数只有\(165\)种,设\(dp_{t,i,j,k}\)表示\(t\)时刻的时候\(i\)个一血奴隶主,\(j\)个二血奴隶主,\(k\)个三血奴隶主的概率,那么转移很明显 if(A)dp[i][A][B][C]+=dp[i-1][A-1][B][C]*A/tot; if(B)dp[i][A][B][C]+=dp[i-1][A+1][B-1][C+…
哇这题剧毒,卡了好久常数才过T_T 设$f(i,s)$为到第$i$轮攻击,怪物状态为$s$时对boss的期望伤害,$sum$为状态$s$所表示的怪物个数,得到朴素的DP方程$f(i,s)=\sum \frac{1}{sum+1}*(f(i+1,s')+[s==s'])$ 状态数只有$C_{8+3}^3=165$个,所以就可以矩乘优化了.再加上一个用于转移的$1$,矩阵大小是$166*166$的,因为多组询问,所以可以先把$2$的所有次幂的矩阵都预处理出来. 然后会发现复杂度是$O(T*166^3…