CF735E Ostap and Tree】的更多相关文章

比较毒瘤的树形DP,子状态难想.这是主要是搬运一篇题解. 用\(f[i][j]\)表示\(i\)的子树中离\(i\)最近黑点的距离为\(j\),且距离超过\(j\)的点都被满足的方案数.转移时新建一个临时数组\(tmp\)保存转移后的\(f[x]\).设\(y\)是\(x\)的子结点,枚举\(f[x][i]\)和\(f[y][j]\),转移如下: 若\(i+j≤2k\),则此时\(min(i,j+1)≤k\),对于长度为\(i+j+1\)的链上的所有点都可以找到一边距离\(≤k\),因此状态合并…
E. Ostap and Tree time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Ostap already settled down in Rio de Janiero suburb and started to grow a tree in his garden. Recall that a tree is a conn…
Discription Ostap already settled down in Rio de Janiero suburb and started to grow a tree in his garden. Recall that a tree is a connected undirected acyclic graph. Ostap's tree now has n vertices. He wants to paint some vertices of the tree black s…
题目大意: 一个$n(n\le100)$个点的树,将一些点染成黑点,求满足每个点到最近黑点的距离$\le k(k\le\min(20,n-1))$的方案数. 思路: 树形DP. 用$f[i][j]$表示$i$的子树中离$i$最近黑点的距离为$j$,且距离超过$j$的点都被满足的方案数.转移时新建一个临时数组$tmp$保存转移后的$f[x]$.设$y$是$x$的子结点,枚举$f[x][i]$和$f[y][j]$,转移如下: 1.若$i+j\le2k$,则此时$\min(i,j+1)\le k$,对…
给定一个n个点的树,把其中一些点涂成黑色,使得对于每个点,其最近的黑点的距离不超过K. 树形DP. 设置状态f[i][j]: 当j <= K时: 合法状态,表示i的子树中到根的最近黑点距离为j的方案数. 当 K < j <= 2K时: 不合法状态,表示i的子树中,需要在上面补充黑点,且这个黑点到i的距离应该至多为(2K - j + 1). 对于这个状态的另外一种理解方式是:i的子树中,距离i最近的黑点距离超过K,距离i最远的黑点距离为j,方案数. 设计这样状态的动机在于: 如果仅仅有j…
A - Ostap and Grasshopper zz题能不能跳到  每次只能跳K步 不能跳到# 问能不能T-G  随便跳跳就可以了  第一次居然跳越界0.0  傻子哦  WA1 n,k = map(int,input().split()) s = input() i = 0 st = -1 def jump(st): while(st<n): st+=k if(st>=n or s[st]=='#'): return "NO" if(s[st]=='T' or s[st…
本次 5 道题均来自Codeforce 关于树形DP的算法讲解:Here 791D. Bear and Tree Jumps 如果小熊每次能跳跃的距离为1,那么问题变为求树上任意两点之间距离之和. 对于每一条边sum1和sum2分别表示边的左右点数,ans=各边的sum1*sum2之和即为答案. 而本题最大跳跃距离为k,答案变为(ans+sum)/k.sum为每一条边需要多走x步才能整除k的x之和. 树上任意两点间距离len=depth[x1]+depth[y1]-2*depth[f],f表示点…
二叉树(Binary Tree)是最简单的树形数据结构,然而却十分精妙.其衍生出各种算法,以致于占据了数据结构的半壁江山.STL中大名顶顶的关联容器--集合(set).映射(map)便是使用二叉树实现.由于篇幅有限,此处仅作一般介绍(如果想要完全了解二叉树以及其衍生出的各种算法,恐怕要写8~10篇). 1)二叉树(Binary Tree) 顾名思义,就是一个节点分出两个节点,称其为左右子节点:每个子节点又可以分出两个子节点,这样递归分叉,其形状很像一颗倒着的树.二叉树限制了每个节点最多有两个子节…
树视图可以用于表示数据的层次. 例如:SAP CRM中的组织结构数据可以表示为树视图. 在SAP CRM Web UI的术语当中,没有像表视图(table view)或者表单视图(form view)那种专门的树视图类型.我们可以认为树视图是表视图的一种特例.因此,没有可以用于创建树视图的向导,需要按以下特定的步骤手动改造已存在的视图. 首先,这个看起来挺难的,但是随着实践次数的增多,你会很容易理解它.在本文,我将创建一个如下模样的树视图. 如你所见,它有两级结构.第一级展示LEAD ID,下一…
无限分级 很多时候我们不确定等级关系的层级,这个时候就需要用到无限分级了. 说到无限分级,又要扯到递归调用了.(据说频繁递归是很耗性能的),在此我们需要先设计好表机构,用来存储无限分级的数据.当然,以下都是自己捣鼓的结果,非标准.谁有更好的设计望不吝啬赐教. 说来其实也简单,就是一个ID和父ID的关系. 以此类推,Id需要是唯一的,ParenId需要是Id列里面存在即可.这样我们就实现无限分级了,如果再加一列Sort排序就更完美了. jstree插件 官方地址:https://www.jstre…