【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. iis6兼容32位运行

    做web服务迁移,从32位win2003迁移到64位win2003,数据库是32位Oracle在另外一台服务器上. 迁移之后数据库各种连不上,oracle的客户端32位的装完装64位的,odp.net ...

  2. Java开发、网络爬虫、自然语言处理、数据挖掘简介

    一.java开发 (1) 应用开发,即Java SE开发,不属于java的优势所在,所以市场占有率很低,前途也不被看好. (2) web开发,即Java Web开发,主要是基于自有或第三方成熟框架的系 ...

  3. 小扩展大用处,自己扩展一个ForeachRead吧

    是否用过IList的扩展方法 Foreach,而郁闷IEnumerable没有这个扩展?(没用过??用用吧,真的很方便,可以少好几行呢!!) 是否为了有一个索引而不得不用 for 而不能用 forea ...

  4. MTK6589下传感器框架结构和代码分析以及传感器的参数指标

    MTK6589下传感器框架结构和代码分析以及传感器的参数指标 作者:韩炜彬  中国当代著名嵌入式研究专家 一.      模块框架 1)配置 路径:Alps/mediatek/config/$(pro ...

  5. Visual Studio安装项目中将用户选择的安装路径写入注册表的方法[转]

    在你的工程名上右击 -> View ->Registry(视图 -> 注册表) 在你需要写注册表的主键下,例如我注册firefox插件的例子是: (1)右击HKEY_CURRENT_ ...

  6. HTML5媒体

    1.视频格式 格式 文件 描述 AVI .avi AVI (Audio Video Interleave) 格式是由微软开发的.所有运行 Windows 的计算机都支持 AVI 格式.它是因特网上很常 ...

  7. Walkthrough: Arranging Controls on Windows Forms Using Snaplines

    https://msdn.microsoft.com/en-us/library/t5b5kc41(v=vs.110).aspx Spacing and Aligning Controls Using ...

  8. Atlassian如何实施DevOps

    DevOps是推动开发和运维团队之间沟通和协作的手段.它不是一个工具或产品.相反,其成功的首要因素就是文化.目的是更快的创新和更好的客户体验. "2015年DevOps状态报告"调 ...

  9. POJ 2431 Expedition(探险)

    POJ 2431 Expedition(探险) Time Limit: 1000MS   Memory Limit: 65536K [Description] [题目描述] A group of co ...

  10. Java——Image 图片切割

    package com.tb.image; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io ...