首页| 新闻| 娱乐| 游戏| 科普| 文学| 编程| 系统| 数据库| 建站| 学院| 产品| 网管| 维修| 办公| 热点
给定一个N<=1000000个点的基环外向森林,求带权的最大独立集。
首先题目中看上去给出的是有向边但实际上是无向边,因为v不会和u在一起那么u也不会和v在一起。
这道题一开始我以为只是一棵普通的树,那这样直接树形dp就好了,用f[u][1],f[u][0]表示u点选中或者不选的最大值,不妨设v为u的儿子,那么状态转移方程显然就是:
f[u][0]=∑Max(f[v][1],f[v][0]) f[u][1]=∑f[v][0]
再读题发现自己傻逼了,题目总共给出了N个点N条边,显然形成了一棵基环外向树,但这样其实还是很好搞,我们dfs或者bfs找到树中的环把环的两头断开,显然两头不能同时选因为它们是联通的,那么我们分别让其中一个选,另一个不选,或者两个都不选分别搞一下树形dp,然后在结果中取最大值就好了。
再打完发现自己又傻逼了,显然所有骑士并不一定会连在一起,肯定是只有一棵基环外向树,另外有或没有很多棵普通的树。但其实还是一样搞,在最外层枚举一下每个点有没有vis过就好了,然后把每棵树的贡献加入ans
断边可以直接把边设为false,但边是双向边而前向星的存法只能一条边表示一个方向,但(两级反转)加边的时候是两个方向的边是同时加入的,所有一条边的编号是id,另一条边的编号就是id⊕1,处理起来很方便。
完。
By g1n0st
索泰发布一款GTX 1070 Mini迷
AMD新旗舰显卡轻松干翻NVIDIA
索泰发布一款GTX 1070 Mini迷你版本:小机
芭蕾舞蹈表演,真实美到极致
下午茶时间,悠然自得的休憩
充斥这繁华奢靡气息的城市迪拜风景图片
从山间到田野再到大海美丽的自然风景图片
肉食主义者的最爱美食烤肉图片
夏日甜心草莓美食图片
人逢知己千杯少,喝酒搞笑图集
搞笑试卷,学生恶搞答题
新闻热点
疑难解答
图片精选
Dictionary数据类型在Darwin视频服
可穿戴手势识别控制器
网友关注