首页 > 其他分享 >【杂题乱写】6 月西安多校 DP 专题训练

【杂题乱写】6 月西安多校 DP 专题训练

时间:2023-06-23 09:04:37浏览次数:45  
标签:子树 乱写 siz 多校 son prod 杂题 单调 mathrm

这也太难了!这也太难了!这也太难了!

A UOJ-607 UR#20 跳蚤电话

加点操作太抽象,改成删点,每次可以删一个叶子,或者删一个只有一个父亲和一个儿子的节点。

算方案还带顺序,子树间再算多重集组合数不方便,不如直接算任意顺序删点最后合法删完的概率。

设 \(f_u\) 为按任意顺序删点删完 \(u\) 子树的概率,答案就是 \((n-1)!\prod_{u\in \mathrm{son}(1)} f_u\)。

暴力转移枚举子树内最晚删的点,如果就是 \(u\) 本身,那么贡献是 \(\prod_{v\in \mathrm{son}(u)} f_u\)。

反之枚举一个 \(v\),这时就要先删 \(v\) 子树内其他节点和不在 \((u,v)\) 路径上的子树,设 \((u,v)\) 路径为 \(a_1=u,\cdots,a_l=v\),那么 \(a_k\) 除 \(a_{k+1}\) 以外的其他子树合法条件就是这些子树本身能完全删除,同时 \(a_k\) 在这些节点之后删除,和上面合起来就是:

\[f_u=\dfrac{1}{siz_u}\left(\prod_{v\in \mathrm{son}(u)} f_v+\sum_{v\in \mathrm{subtree}(v),v\neq u} \prod_{w\in \mathrm{son}(v)} f_w\prod_{k=1}^{l-1} \dfrac{1}{siz_{a_k}-siz_{a_{k+1}}}\prod_{w\in \mathrm{son}(a_k),w\neq a_{k+1}} f_w\right) \]

设 \(g_u=f_u\times siz_u\),就把外面的系数摘掉了,注意到前半部分复杂度正确,后半部分和 \(u\) 有关的只有 \(a_1\) 一项,于是相当于是 \(v\) 对 \(u\) 做贡献,每次合并就是增加一项。

这样就是:

\[g_u=\prod_{v\in \mathrm{son}(u)} f_v+\sum_{v\in \mathrm{son}(u)} g_v\times \dfrac{1}{siz_u-siz_v}\prod_{w\in \mathrm{son}(u),w\neq v} f_w \]

实际上,\(f\) 前半部分乘上这一项系数之后就和 \(f\) 后半部分形式相同,所以转移是正确的。

提交记录:Submission - UOJ

D CodeForces-CF1239E Turtle *3100

这个东西长得很想皇后游戏那题。

考虑交换贪心,若只交换 \(a_{x,1}\) 与 \(a_{x+1,1}\),则在 \(x+1\) 位置向下的值路径和不变,在 \(x\) 位置向下的路径和由 \(a_{x,1}\) 与 \(a_{x+1,1}\) 的大小决定,因此第一行应当是一个单调不降的序列,而第二行应当是一个单调不升的序列。再考虑两条相邻路径对应权值的变化量,实际是增加 \(a_{x+1,1}\),减少 \(a_{x,2}\),由于 \(a_{x,1}\) 不降,\(a_{x,2}\) 不升,所以这个变化量 \(a_{x,1}-a_{x+1,2}\) 应当是单调不降的,因此其原函数是下凸或是单调函数,也就是只有在 \(1\) 或 \(n\) 位置向下走才会取到最大值。

把两个最小值放在 \(a_{1,1},a_{n,2}\) 处,剩下就是要规划分配方案使得二者中最大值最小了,背包就可以解决问题,输出方案只需要按前面单调的性质排布。复杂度是 \(O(n^3\omega)\)。

提交记录:Submission - CodeForces

标签:子树,乱写,siz,多校,son,prod,杂题,单调,mathrm
From: https://www.cnblogs.com/SoyTony/p/Multiple_School_DP_Training_Problems_in_Xian_June.html

相关文章

  • 6.19 杂题
    【山东省选集训2023】T1.树染色有多少种选出\(\{(u_1,v_1),(u_2,v_2),...,(u_m,v_m)\}\)的方法,使得:任意\(u_i\)是\(v_i\)祖先;\(u_1=1\);对于任意\(i\ge2\),存在\(j<i\)使得\(u_i\)在\(u_i\tov_i\)的路径上;所有边被至少一条路径\(u_i\tov_i\)覆盖。对每......
  • 杂题3
    \(\text{CF547DMikeandFish}\)对于横坐标相同的点两两连边,剩下一个点不管,纵坐标同理这样形成的图是二分图,因为一个点只会在横轴上连出一条边,纵轴上连出一条边。最后黑白染色即可\(\text{CF547EMikeandFriends}\)差分询问,考虑每个字符串对询问的贡献于是建出ACAM,顺序处......
  • transform (牛客多校) (双指针+二分+ 中位数妙用+前缀和相减维护)
    题目大意:n个商店在一条直线上, 有一个xi然后有ai个商品你可以把商店的物品移动到另一个商店,代价为:abs(xi-xj)在代价不超过T的情况下你可以选择一个商店来让其他商店的物品都移到这个商店,问最多移动多少个物品  思路:双指针维护一个最大的区间,因......
  • 【考后总结】6 月西安多校模拟赛 3
    6.17冲刺国赛模拟20T1树染色容易发现每种方案都可以变成没有交边的链剖分,在此基础上的方案数是每个链顶的深度,考虑DP。直接DP大致是维护\(\prod(\proda+\prodb)\timesdep_{top}\),发现这个东西非常不好转移,转移时需要枚举叶子,复杂度不优秀。改为设\(f_{i,0/1}\)表......
  • farm (牛客多校) (二维树状+数学式子优化+rand()去除特殊情况)
    题目大意:给出一个n*m的田地矩阵,每个格子上种着一种植物。给格子施肥t次,每一次给出五个数字,x1,y1,x2,y2,k,要施肥的区域坐标和要施的肥料种类。如果植物和施肥种类不匹配,植物会死亡。问最终会死多少个植物。 思路:判断一个植物死不死, 判断植物种类*施肥次数==施肥种类总和某......
  • 6月CF杂题
    已经18号了捏。EducationalCodeforcesRound150(RatedforDiv.2)E.FilltheMatrix比较傻逼,但是是E,所以写一下。显然最优是横着填一段形如\(x,x+1,x+2\ldots\)的数,那么如果一段长度为\(l\)则贡献为\(l-1\),所以我们要尽量填进长的段里。现在问题就变成了维护每......
  • 6月CWOI杂题
    C0253【0617C组】模拟测试军训归来的第一场模拟赛,小寄。C【0601C组】树好神奇的题目。直径这个东西没什么能入手的性质,我们先考虑进行一些转化。对于直径,我们去找它的中心点。中心点可能在边上,于是把边拆开,比如边\((u,v)\)拆成\((u,x)(x,v)\),这样就有了\(2n-1\)个点......
  • car (牛客多校) (情景找规律,抠细节)
    题目大意:给一个正方形棋盘,你现在可以在棋盘的边缘防止车,然后车只能向正对的方向走,(角落可以往2边走)2个车相遇会G给m个破环的方块,车经过就G问最多可以放多少个车] 思路:注意奇偶分规律,偶数2*n,奇数2*n-1注意放置破环的方块,在奇数最中间的时候,......
  • Longest Path (牛客多校) (换根DP+斜率优化)
    换根dp:第一次dfs处理儿子点的权值第二次dfs处理父亲点,和兄弟节点的权值处理兄弟节点的时候,利用父亲节点统一处理,利用stl存储斜率优化:为什么会用到斜率优化:在遇到转移式子是fixfj的时候,不是分开的,(分开的,直接用单调队列处理)(通常会遇到平方式子)把......
  • 【杂题乱写】6 月西安多校数学专题训练
    这也太难了!这也太难了!这也太难了!DAtCoder-AGC034FRNGandXOR这类无穷游走的期望可以写出转移式子:\[\begin{cases}E_i=0&i=0\\E_i=1+\sum_{j\oplusk=i}E_j\timesP_k&i>0\end{cases}\]\(i>0\)的情况按FWT异或卷积理解就是\(E=E*P+I\),但是放在\(E_0=0\)处不太合适......