BZOJ 4316: 小C的独立集 仙人掌 + 树形DP
4316: 小C的独立集
Time Limit: 10 Sec Memory Limit: 128 MB
Description
Input
Output
Sample Input
1 2
2 3
3 1
3 4
4 5
3 5
Sample Output
HINT
Source
题解:
这个图是仙人掌图啊
对于一个环就直接 另外 DP就好了
环与环相邻,逐个求解不受影响啊
设定dp[i][0/1] 表示当前i为根节点的且选与不选的状态下 其子树 的 最大可选节点数
- #include <bits/stdc++.h>
- inline long long read(){long long x=,f=;char ch=getchar();while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}return x*f;}
- using namespace std;
- #define ls i<<1
- #define rs ls | 1
- #define mid ((ll+rr)>>1)
- #define MP make_pair
- typedef long long LL;
- typedef unsigned long long ULL;
- const long long INF = 1e18+1LL;
- const double pi = acos(-1.0);
- const int N = 2e5 + , M = , inf = 1e9;
- vector<int > G[N];
- int dp[N][],n,m,fa[N];
- int dep[N];
- void gao(int x,int y) {
- //cout<<x<<" " <<y<<endl;
- int last0 = , last1 = ;
- for(int i = x; i != y; i = fa[i]) {
- int tmp = last0;
- last0 = max(last0,last1) + dp[i][];
- last1 = tmp + dp[i][];
- }
- dp[y][] += max(last1,last0);
- // int fuck = max(last0,last1);
- last0 = -inf, last1 = ;
- for(int i = x; i != y; i = fa[i]) {
- int tmp = last0;
- last0 = max(last0,last1) + dp[i][];
- last1 = tmp + dp[i][];
- }
- // fuck = max(max(last0,last1),fuck);
- //dp[y][0] += fuck;
- dp[y][] += last0;
- }
- void dfs(int u,int f) {
- dep[u] = dep[f] + ;
- fa[u] = f;
- dp[u][] = ;
- // cout<<u<<" "<<f<<endl;
- for(int i = ; i < G[u].size(); ++i) {
- int to = G[u][i];
- if(to == f) continue;
- if(!dep[to]) {dfs(to,u);}
- }
- for(int i = ; i < G[u].size(); ++i) {
- int to = G[u][i];
- if(to == f) continue;
- if(dep[to] > dep[u] && fa[to] != u) {///montherfuck
- gao(to,u);
- }
- }
- }
- int main() {
- scanf("%d%d",&n,&m);
- for(int i = ; i <= m; ++i) {
- int u,v;
- scanf("%d%d",&u,&v);
- G[u].push_back(v);
- G[v].push_back(u);
- }
- dfs(,);
- printf("%d\n",max(dp[][],dp[][]));
- return ;
- }
- /*
- 17 20
- 1 2
- 2 3
- 3 4
- 4 5
- 5 2
- 2 6
- 6 7
- 7 8
- 8 9
- 9 10
- 10 11
- 11 12
- 12 6
- 6 13
- 13 14
- 14 15
- 15 16
- 16 17
- 17 13
- 13 1
- */
BZOJ 4316: 小C的独立集 仙人掌 + 树形DP的更多相关文章
- BZOJ.4316.小C的独立集(仙人掌 DP)
题目链接 \(Description\) 求一棵仙人掌的最大独立集. \(Solution\) 如果是树,那么 \(f[i][0/1]\) 表示当前点不取/取的最大独立集大小,直接DP即可,即 \(f ...
- BZOJ 4316: 小C的独立集 解题报告
4316: 小C的独立集 Description 图论小王子小C经常虐菜,特别是在图论方面,经常把小D虐得很惨很惨. 这不,小C让小D去求一个无向图的最大独立集,通俗地讲就是:在无向图中选出若干个点, ...
- BZOJ 4316: 小C的独立集
4316: 小C的独立集 思路:先将树上的转移做好.然后环上的转移就是强制最上面的的点选或者不选,然后在环上跑一遍转移就可以了. 代码: #pragma GCC optimize(2) #pragma ...
- bzoj 4316: 小C的独立集【仙人掌dp】
参考:https://www.cnblogs.com/clrs97/p/7518696.html 其实和圆方树没什么关系 设f[i][j][k]为i点选/不选,这个环的底选不选 这个底的定义是设u为这 ...
- 【刷题】BZOJ 4316 小C的独立集
Description 图论小王子小C经常虐菜,特别是在图论方面,经常把小D虐得很惨很惨. 这不,小C让小D去求一个无向图的最大独立集,通俗地讲就是:在无向图中选出若干个点,这些点互相没有边连接,并使 ...
- bzoj 4711 小奇挖矿 ——“承诺”类树形dp
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4711 对“承诺”有了更深的了解. 向外和向内要区分,所以 f [ i ][ j ] 表示根向 ...
- 【BZOJ-4316】小C的独立集 仙人掌DP + 最大独立集
4316: 小C的独立集 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 57 Solved: 41[Submit][Status][Discuss] ...
- BZOJ.4199.[NOI2015]品酒大会(后缀自动机 树形DP)
BZOJ 洛谷 后缀数组做法. 洛谷上SAM比SA慢...BZOJ SAM却能快近一倍... 只考虑求极长相同子串,即所有后缀之间的LCP. 而后缀的LCP在后缀树的LCA处.同差异这道题,在每个点处 ...
- [BZOJ 1907] 树的路径覆盖 【树形DP】
题目链接:BZOJ - 1907 题目分析 使用树形 DP,f[x][0] 表示以 x 为根的子树不能与 x 的父亲连接的最小路径数(即 x 是一个折线的拐点). f[x][1] 表示以 x 为根的子 ...
随机推荐
- POJ1167 The Buses
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 6234 Accepted: 1698 Description A man ...
- JavaScript基础深入之----参数传递的分析与总结
JS的数值类型是分为两类:基本数据类型和引用数据类型. 基本类型占据的内存栈空间,引用类型被保存在堆空间.引用类型赋值的变量也是被保存在栈空间的,它的作用类似于电视遥控器,负责操作堆空间内指向的对象. ...
- 04深入理解C指针之---指针优缺点
该系列文章源于<深入理解C指针>的阅读与理解,由于本人的见识和知识的欠缺可能有误,还望大家批评指教. 指针的优点: 1.支持动态内存分配,主要借助于malloc()函数完成内存的分配,fr ...
- hdu 1180(广搜好题)
诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Subm ...
- DOM节点太多导致页面卡顿的优化方法
http://developer.51cto.com/art/201504/473422.htm
- JS-日历签到
实现的功能: 首先这是前端显示的内容,没有后台的配置哈: 1.显示当前年月下的日历表: 2.今天的日期独有背景色: 3.当月今天之前的日子号数颜色变浅,表示日期已过: 4.点击日期签到:(只能点击当天 ...
- DTrace Oracle Database
http://d.hatena.ne.jp/yohei-a/20100515/1273954199 DTrace で Oracle Database のサーバー・プロセスをトレースしてみた Oracl ...
- jmeter源码编译
转载:http://blog.csdn.net/wanglha/article/details/42004943 一.下载源码 git clone git://github.com/apache/jm ...
- html嵌套规则
本人半路出家的 今天学习js的时候写了一个a嵌套a标签结果js报错 一直找不到原因 专门找了一下html嵌套规则看了一下 1.块级元素 一般用来搭建网站架构.布局.承载内容……它包括以下这些标签: ...
- CrtmpServr 接收Http流程
最近在研究CrtmpServer http部分,记录一些基本的流程,以备查阅. 首先,打开配置脚本CrtmpServer.lua ,确认脚本中有以下内容,如果没有需要加上. { name=" ...