传送门 sbDP题. 曾经一直TLE不知道为什么. 这次发现输入有坑233. 代码…
传送门 一道神奇的dp题. 这题的决策单调性优化跟普通的不同. 首先发现这道题只跟r−lr-lr−l有关. 然后定义状态f[i][j]f[i][j]f[i][j]表示猜范围为[L,L+i−1][L,L+i-1][L,L+i−1]的数有jjj次报警机会所需的最小代价. 那么有: f[i][j]=minf[i][j]=minf[i][j]=min{max(f[k][j],f[i−k][j−1]+1)max(f[k][j],f[i-k][j-1]+1)max(f[k][j],f[i−k][j−1]+1…
传送门 二分答案好题. 这已经是当年普及组模拟时挖的坑了233. 这道题还是很不错的. 考虑把坐标系转个45度再操作. 为了不爆精度可以直接转切比雪夫距离. 然后就直接二分答案. 其中竖线就按二分的答案来分割. 而横着的线怎么确定是否合法呢? 我们用ststst表来确定是否合法. 然后就能解决普及组模拟题啦QAQ. 代码…
传送门 勉强算一道dp好题. 显然第kkk列和第k+nk+nk+n列放的棋子数是相同的. 因此只需要统计出前nnn列的选法数. 对于前mmm%nnn列,一共有(m−1)/n+1(m-1)/n+1(m−1)/n+1列跟它放的棋子数一定相同. 而对于第mmm%n+1n+1n+1~nnn列,一共有m/nm/nm/n列跟它放的棋子数一定相同. 因此枚举当前在第几列,一共放了几个棋子,然后用背包+快速幂优化转移就行了. 代码…
传送门 换根dp入门题. 貌似李煜东的书上讲过? 不记得了. 先推出以1为根时的答案. 然后考虑向儿子转移. 我们记f[p]f[p]f[p]表示原树中以ppp为根的子树的答案. g[p]g[p]g[p]表示把根换成ppp时整棵树的答案. 于是有g[v]=f[v]+min(g[p]−min(e[i].c,f[v]),e[i].c)g[v]=f[v]+min(g[p]-min(e[i].c,f[v]),e[i].c)g[v]=f[v]+min(g[p]−min(e[i].c,f[v]),e[i].c…
传送门 根据题目列出方程: fi=pi∗(fi−1+fi−2)+(1−pi)∗(fi+1+fi)f_i=p_i*(f_{i-1}+f_{i-2})+(1-p_i)*(f_{i+1}+f_i)fi​=pi​∗(fi−1​+fi−2​)+(1−pi​)∗(fi+1​+fi​) 但这会牵扯到iii之后的状态没法做. 因此考虑如果合成失败会变成一个等级为i−2i-2i−2的武器. 相当于消耗了一个等级为i−1i-1i−1的武器. 因此fi=pi∗(fi−1+fi−2)+(1−pi)∗(fi−1+fi)f…
传送门 换根dpdpdp傻逼题好像不好码啊. 考虑直接把每一个二进制位拆开处理. 先dfsdfsdfs出每个点到1的异或距离. 然后分类讨论一波: 如果一个点如果当前二进制位到根节点异或距离为1,那么对于当前二进制位到这个点距离为000的就是到根节点距离为111的,如果当前二进制位到这个点距离为111的就是到根节点距离为000的. 如果一个点如果当前二进制位到根节点异或距离为1,那么对于当前二进制位到这个点距离为000的就是到根节点距离为000的,如果当前二进制位到这个点距离为111的就是到根节…
传送门 f[i][j]f[i][j]f[i][j]表示后iii个对答案贡献有jjj个a的方案数. 可以发现最后a,ba,ba,b的总个数一定是n∗(n−1)/2n*(n-1)/2n∗(n−1)/2 因此直接转移就行了. f[i][j]=f[i+1][j]+f[i+1][j−i]f[i][j]=f[i+1][j]+f[i+1][j-i]f[i][j]=f[i+1][j]+f[i+1][j−i] 解释:要么当前不选,要么选了就会有iii个aaa的贡献. 发现空间有点大?滚动数组优化 代码…
传送门 期望题. 其实跟dpdpdp关系并不大. 考虑f[i]f[i]f[i]表示已经凑出了iii个需要的次数. 显然有:f[i]=ni∗f[i]+nn−i∗f[i+1]+1f[i]=\frac {n} {i}*f[i]+\frac {n} {n-i}*f[i+1]+1f[i]=in​∗f[i]+n−in​∗f[i+1]+1 那么就有f[i]=f[i+1]+nn−if[i]=f[i+1]+\frac {n} {n-i}f[i]=f[i+1]+n−in​ 所以ans=f[0]=∑i=1nnians…
传送门 正解是dp并不想去想了. 自己yy了一个贪心拿了95pts95pts95pts,唯一没过的点还只有一个地方错了,面向数据变成之后过啦! 所以我讲讲如何贪心. 考虑到最后都只会合并成一种颜色,所以我们直接枚举变成哪种,然后让其它的全部强制直接变成那一种就行了. 欢乐95pts95pts95pts 代码(加了特判)…