您当前的位置: 首页 > 

HeartFireY

暂无认证

  • 0浏览

    0关注

    334博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

2021 CCPC 桂林站 E.Buy and Delete Dijsktra 查环+贪心

HeartFireY 发布时间:2021-11-07 22:35:34 ,浏览量:0

题目分析

题目大意:

赛后听说没读懂题面卡了一车人,遂感觉大受震撼

给定一张有向图 G G G,初始状态下有 n n n个独立的点,没有任何边。给出 m m m条边及其权值, A l i c e Alice Alice可以从 m m m条边中选择任意数量的边插入图中,但要求插入图中边的总权值和不超过 c c c。

B o b Bob Bob要从图中删边,定义删除操作为:每次从有向图 G G G的边集 S S S中选择一个子边集删除,要求该必须满足该子边集中的边独立存在于图中的时候,整张图是无环的(acyclicadj.无环的)。

现在 A l i c e Alice Alice希望 B o b Bob Bob删除次数最大化, B o b Bob Bob希望删除次数最小化(废话,就是采取最佳策略),双方采取最佳策略。求删除轮数。

思路:

刚刚读完题面,第一感觉是背包+贪心,但仔细一想似乎跟背包没啥关系。我们从给图删边的角度入手考虑,如果要求删边操作最大化,那么假设现在有一张完全图,以点数为 3 3 3和 4 4 4为例:

在这里插入图片描述

不难发现,第一次可以选择删除满足 u > v u > v u>v的所有边 ( u , v ) (u, v) (u,v),第二次选择 u < v u < v u d[start][x] + z){ d[start][y] = d[start][x] + z; q.push(make_pair(-d[start][y], y)); } } } } inline void solve(){ memset(d, 0x3f, sizeof(d)); int n, m, c; cin >> n >> m >> c; for(int i = 1; i

关注
打赏
1662600635
查看更多评论
立即登录/注册

微信扫码登录

0.0492s