首页 > 其他分享 >CF1929E. Sasha and the Happy Tree Cutting

CF1929E. Sasha and the Happy Tree Cutting

时间:2024-03-12 21:23:59浏览次数:37  
标签:nk Tree Sasha CF1929E Cutting dp Happy

Problem - 1929E - Codeforces

  • 无意看一眼标签是 \(dp\) 就一直朝树形状压 \(dp\) 的方向想了一年,发现不是树形 \(dp\)

  • 设 \(dp_S\) 为完成集合 \(S\) 内的限制所需要的最少边数

  • 把每一对顶点的路径上每条边的值都状压,表示添加这条边可以实现的限制有哪些,记为 \(b_i\)

  • 因此有:

  • \[dp_S = min\{ dp_{S-b_i} + 1 \} \]

  • 但是还没有结束,因为直接这么做是 \(O(nk + 2^kn)\) 的

  • 这里需要一个重要结论:不同种类的 \(b_i\) 只有 \(O(k)\) 个

  • 考虑把一个 \(L\) 型的限制对拆成两个 \(I\) 型的,种类数一定不会减少

  • 而对于每一个加入的 \(L\) 性,显然最多增加两种类型

  • 因此最终种类数是 \(O(k)\)

  • 因此我们只需要把 \(b_i\) 去重即可做到 \(O(nk + 2^kk)\)

标签:nk,Tree,Sasha,CF1929E,Cutting,dp,Happy
From: https://www.cnblogs.com/fox-konata/p/18069304

相关文章

  • CF516E Drazil and His Happy Friends 题解
    题目传送门记\(d=\gcd(n,m)\),发现只有编号在模\(d\)意义下相同的人之间会产生影响,那么有解当且仅当每个剩余系内有至少一个人是快乐的。所以在\(d>b+g\)时直接输出-1即可。对于剩下的情况,先令\(n\leftarrow\fracnd,m\leftarrow\fracmd\),如果\(n<m\)那么把男女交......
  • BEVDet的进阶BEVPoolv2:A Cutting-edge Implementation of BEVDet Toward Deployment
    论文地址:https://arxiv.org/pdf/2211.17111.pdf​arxiv.org/pdf/2211.17111.pdf代码地址:GitHub-HuangJunJie2017/BEVDet:OfficialcodebaseoftheBEVDetseries.​github.com/HuangJunJie2017/BEVDet/tree/dev2.0整体思想:作者从工程优化的角度考虑优化BEVDet,提出了B......
  • Sasha and the Happy Tree Cutting
    题目只出现了一些关键点,所以想到虚树,我们对关键点建立虚树,会发现对虚树上的一条边\((u,v)\),在原图中\(u\)到\(v\)的路径只用最多选择一条就可以了,所以我们就发现,有效的边的个数就是虚树上的边,是\(O(k)\)的然后看一下\(k\)的范围,想到状态压缩,对每一个状态\(S\),枚举虚树中的每一条......
  • CF1929E 题解
    题意:给定一棵\(n\)个节点数和\(k\)条路径\((a_i,b_i)\),求至少将多少条边染色,使得给定路径都至少有一条染色的边。\(n\le10^5,k\le20\)。思路:好题。显然状压\(dp\),\(dp[S]\)表示至少染多少条边使得\(S\)中的路径都满足条件。正常思路是枚举子集转移,考虑\(T\s......
  • Tree cutting
    #include<bits/stdc++.h>constintN=1e5+10,M=2*N,mod=1e9+7;usingnamespacestd;inth[N],e[M],ne[M],idx=0;intn,s,siz[N];boolst[N];voidadd(intx,inty){e[idx]=y,ne[idx]=h[x],h[x]=idx++;}voiddfs(intu,in......
  • CF1916E Happy Life in University
    关于我赛时线段树忘了开四倍空间导致白吃了一发罚时这档逝原题传送门约定\(x\)子树内的叶子称为\(x\)的叶子。与\(x\)颜色相同的点称为\(x\)的同色点或\(x\)色点。所有在\(x\)子树内的、到\(x\)的路径上(两端不含)没有\(x\)的同色点的\(x\)的同色点称为\(x\)......
  • [Keyence2019] Paper Cutting
    PaperCuttingLuoguAT_keyence2019_f题面翻译有一个\((H+1)\times(W+1)\)的网格,网格中有\(H\)条水平线和\(W\)条竖直线。你需要执行\(K\)次操作,每次沿一条水平线或竖直线将网格切开。定义一次操作的权值为切割后网格被切分的块数。定义一个操作序列的权值为\(K\)......
  • 在Vue中使用HappyPack
    在Vue中使用HappyPack1、介绍HappyPack由于有大量文件需要解析和处理,构建是文件读写和计算密集型的操作,特别是当文件数量变多后,Webpack构建慢的问题会显得严重。运行在Node.js之上的Webpack是单线程模型的,也就是说Webpack需要处理的任务需要一件件挨着做,不能多个事情一......
  • CodeForces 1268E Happy Cactus
    洛谷传送门AtCoder传送门考虑一些简单的情况,比如树。设\(f_u\)为当前\(u\)能通过边权递增的路径到达的点数(包括它自己)。为了让两个点对在边权递增路径的边权最小的那条边被统计,我们倒序枚举边。当枚举到\((u,v)\)时,我们有\(f_u=f_v=f_u+f_v\)。这是因为\(u\)......
  • 【大联盟】20230703 T2 开心的序列(sequence) 题解 AT_agc049_f 【[AGC049F] Happy Sequ
    zak/bx恐怖zak将这题加强,出到模拟赛。直接把\(A_i,B_i\le10^5,C_i\le5\)变成了\(A_i,B_i,C_i\le10^9\)。非常恐怖。题目描述点击膜拜zhoukangyang。题解重新再理解一遍。我们维护\(p(x)=\sum_i|a_i-x|+|b_i-x|\),那么就相当于要求\(\forallx,p(x)\le0\),也就......