【bzoj1040】骑士

题意

给定一个基环森林,求最大独立集。

分析

其实这是一道一年前做过的题。

只是今天在看bzoj1023的时候突然来了几许兴致,回过头来看一看。

如果对于一棵树的最大独立集,那就是【没有上司的舞会】,也就是一个简单的树形dp。

现在很明显要将其与这道题建立一定的联系。

对于基环森林中的每一棵基环树,我们先找到环。

接下来,就有两种分析思路。

(1)考虑环中的任意一条边\((u,v)\),在我们的结果中,\((u,v)\)必然会有至少一个点不选。所以我们分开两次枚举\((u,v)\)不选,这样的话\((u,v)\)这条边就等价于没有。所以直接删除\((u,v)\)这条边,分别以\(u\)和\(v\)为根进行两次树形dp,然后取\(max(f[u][0],f[v][0])\)即可。

(2)第一种想法比较巧,能成立是因为有“\((u,v)\)必然会有至少一个点不选”的特性,我们根据这个特性设计了算法。

就算没有发现这一条性质,其实也可以做。

如图,对于一个基环树,它会形成一个环,环中的每个点都镶嵌着一棵子树。



我们先对于每棵子树进行树形dp,然后枚举环的第一棵子树的根有没有,分开两次线性dp下去就可以了。

小结

(1)基环树

回顾一下基环树的一些性质与判定。

表述形式1:\(n\)个点\(n\)条边

表示形式2:\((i,a_i)\)

(2)环处理

环的处理手段还是蛮多的。

①把环上的节点倍增一次

②讨论环上第一个的情况,然后处理

③例如本问题,如果环上任意相邻两个的状态有着某种特性,那么可以直接考虑断开这条边来搞

【bzoj1040】骑士的更多相关文章

  1. bzoj1040 骑士

    Description Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火 ...

  2. BZOJ1040 骑士 【环套树 树形dp】

    1040: [ZJOI2008]骑士 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 5611  Solved: 2166 [Submit][Stat ...

  3. BZOJ1040 骑士 基环外向树

    1040: [ZJOI2008]骑士 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 6421  Solved: 2544[Submit][Status ...

  4. BZOJ1040:骑士(基环树DP)

    Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里,在和平环境中 ...

  5. BZOJ.4316.小C的独立集(仙人掌 DP)

    题目链接 \(Description\) 求一棵仙人掌的最大独立集. \(Solution\) 如果是树,那么 \(f[i][0/1]\) 表示当前点不取/取的最大独立集大小,直接DP即可,即 \(f ...

  6. [BZOJ4784][ZJOI2017]仙人掌(树形DP)

    4784: [Zjoi2017]仙人掌 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 312  Solved: 181[Submit][Status] ...

  7. 基环树DP

    基环树DP Page1:问题 啥是基环树?就是在一棵树上增加一条边. Page2:基环树的几种情况 无向 有向:基环外向树,基环内向树. Page3:处理问题的基本方式 1.断环成树 2.分别处理树和 ...

  8. 【BZOJ1040】骑士(动态规划)

    [BZOJ1040]骑士(动态规划) 题面 BZOJ 题解 对于每一组厌恶的关系 显然是连边操作 如果是一棵树的话 很显然的树型\(dp\) 但是,现在相当于有很多个基环 也就是在一棵树的基础上再加了 ...

  9. 【BZOJ1040】[ZJOI2008]骑士 树形DP

    [BZOJ1040][ZJOI2008]骑士 Description Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情 ...

随机推荐

  1. uafxcwd.lib(afxmem.obj) : error LNK2005 解决方法

    项目为非MFC,但要用到MFC的库,使用过程中遇到的问题总结一下 uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl opera ...

  2. BZOJ 2768 冠军调查(最小割)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2768 题意:给出一个无向图,每个点有一个值0或者1.现在重新设置每个点的值0或者1.设重 ...

  3. Creating, Stopping, Re-Starting and Deleting a Timer in Oracle Forms

    I have written many posts previously on Timers in Oracle Forms like how to change images randomly wi ...

  4. Tomcat源码导入Eclipse测试

    想要研究下Tomcat的体系结构或者源码,最好将Tomcat的源码导入到ide中,编写实例进行代码跟踪(debug). 这里参考了网上一些资料,将自己操作过程记个流水账. 准备: 1.Tomcat源码 ...

  5. [JAVA设计模式]第一部分:接口、抽象类、设计原则

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. [C和指针]第二部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. win 8 pip install 或者 pycharm 安装 paramiko 报错

    这是安装时报错的最后几行 creating build\temp.win-amd64-3.5\Release\build creating build\temp.win-amd64-3.5\Relea ...

  8. 创建XML

    //创建XML XElement xelement = new XElement("request", new XElement("head", new XEl ...

  9. 移动h5自适应布局

    问题一,分辨率Resolution适配:不同屏幕宽度,html元素宽高比和字体大小,元素之间的距离自适应,使用rem单位. 问题二,单位英寸像素数PPI适配:使用rem单位,文字会发虚.段落文字,使用 ...

  10. iOS - UIAlertView

    前言 NS_CLASS_DEPRECATED_IOS(2_0, 9_0, "UIAlertView is deprecated. Use UIAlertController with a p ...