Tarjan
文章平均质量分 61
Jozky86
这个作者很懒,什么都没留下…
展开
-
P2656 采蘑菇
P2656 采蘑菇 题意: 有n个点,m个单向边,每个边都有边权,如果经过这个边,可以获得其边权,而其边权会变成原来的p倍(0.1<=p<=0.8),向下取整 从s点出发,问最多可以采到的蘑菇 题解: 因为是单向边,除非出现一个环,不然每个边最多只能走一次,如果有一个环,环上的边权可以一直获取,直到边权为0. 所以我们可以用tarjan进行缩点,将这个环上所有得到的价值加起来,赋给缩成的点x。 缩完点后,就同时有点权(在之前环上所能获取的价值)和边权,且无环,那直接跑一个拓扑+dp就可以,在拓扑原创 2021-09-11 18:56:17 · 181 阅读 · 0 评论 -
Defend Your Country
Defend Your Country 题意: n个点,m条边的简单无向连通图,每个点一个权值ai,一个连通块的贡献:(−1)块内点数∗∑ai[点i在该连通块内](-1)^{块内点数}*\sum a_{i}[点i在该连通块内](−1)块内点数∗∑ai[点i在该连通块内] 可以任意删除一些边,求连通块贡献之和最大是多少 题解: 如果n是偶数,此时贡献就是所有点的和,显然不需要删除任何边,因为这已经是最大贡献sum 如果是奇数,我们就需要让一个点x脱离其他n-1个点,此时答案就是sum-a[x]-a[x](减原创 2021-08-06 17:22:52 · 186 阅读 · 0 评论 -
P2403 [SDOI2010]所驼门王的宝藏
P2403 [SDOI2010]所驼门王的宝藏 题意: R * C的地图上有n个宝藏,给你n个宝藏的坐标,每个宝藏的位置上还有一个传送门,传送门有三种类型,1.可以传送到同行的其他宝藏位置,2.可以传送到同列的其他宝藏位置 3.可以传送到该点周围的八个位置 你可以在任意一个宝藏处开始,问最多获得多少宝藏? 题解: 如果我们直接按照题意要求建边,(暴力建边,第1类门和每行其他门建边,第2,3类门同理),会得到一个有向有环图,对于环我们可以用tarjan进行缩点,然后得到DAG,然后就是在DAG直接dp求就行(原创 2021-08-04 16:07:43 · 180 阅读 · 0 评论