Solution:

假设已经选了所有的点。

  如果从中删掉一个点,那么其它所有点的分值只可能减少或者不变。

如果要使若干步删除后最小的分值变大,那么删掉的点集中肯定要包含当前分值最小的点。

所以每次删掉一个点都记录一次最大值。取最大的情况输出就好。

#include <bits/stdc++.h>
using namespace std;const int N = 100009;vector<int> E[N], out;
set<pair<double, int>> s;
int deg[N], vis[N], dg[N];
int n, m, k;int main()
{ios::sync_with_stdio ( 0 );cin >> n >> m >> k;for ( int i = 1, x; i <= k; ++i ) {cin >> x;vis[x] = 1;}for ( int i = 1, u, v; i <= m; ++i ) {cin >> u >> v;E[u].push_back ( v ), ++deg[u];if ( !vis[v] ) ++dg[u];E[v].push_back ( u ), ++deg[v];if ( !vis[u] ) ++dg[v];}for ( int i = 1; i <= n; ++i ) {if (!vis[i])s.insert ( make_pair ( 1.*dg[i] / deg[i], i ) );}double ans = -1;while (!s.empty() ) {auto it = *s.begin();if (it.first > ans) {ans=it.first;out.clear();for (auto &i : s) {out.push_back (i.second);}}s.erase (s.begin() );vis[it.second] = 1;for (auto &i : E[it.second]) {if (!vis[i]) {s.erase (make_pair (1.*dg[i] / deg[i], i) );--dg[i];s.insert (make_pair (1.*dg[i] / deg[i], i) );}}}cout << out.size() << endl;for (auto &i : out) {cout << i << " ";}
}

View Code

转载于:https://www.cnblogs.com/keam37/p/4609041.html

Codeforces 553D Nudist Beach(图论,贪心)相关推荐

  1. codeforces 553D Nudist Beach 二分+bfs

    題意: 給你n个点,然后让你选出一些点,使得每个点的比率最小值尽量大,让你输出你所选的点. 其中有m个点是不能选的.k条无向边,连接着点与点,保证只有一个连通块). 点x的比率= (点x的邻居,且在你 ...

  2. codeforces Gym 100338E Numbers (贪心,实现)

    题目:http://codeforces.com/gym/100338/attachments 贪心,每次枚举10的i次幂,除k后取余数r在用k-r补在10的幂上作为候选答案. #include< ...

  3. codeforces round 309 div1 Nudist Beach 二分+搜索

    题目描述:给出一个有n(1<=n<=1e5)个点m(1<=m<=1e5)条边的无向图,其中有k个点为堡垒,现在要求占领除堡垒外的一些点作为我方据点,未被占领的点视为敌方据点,使 ...

  4. Codeforces Round #309 (Div. 1)D. Nudist Beach 二分+bfs

    题目:http://codeforces.com/contest/553/problem/D 在一个无向图中,有若干坏点,选择一个不包含坏点的集合,使得集合中p值最小的点的p值最大.一个点的p值=集合 ...

  5. codeforces #309 D D. Nudist Beach(浮点数二分+bfs)

    题目链接: 点击打开链接 题目大意: 给出一个连通图选取一个子图,给出不能被选中点,每个点的值为(子图的度数/总度数),求一个最小值最大的子图 题目分析: 很显然这是一个二分图,因为如果存在x能选出子 ...

  6. Codeforces 671E Organizing a Race (贪心、线段树)

    题目链接 https://codeforces.com/contest/671/problem/E 题解 完全不会做--基本是抄lk的代码 ruogu的题解: https://www.luogu.co ...

  7. CodeForces - 1529E Trees of Tranquillity(贪心+线段树)

    题目链接:https://vjudge.net/problem/CodeForces-1529E 题目大意:给出两棵根节点为 111 的树,分别称为 AAA 树和 BBB 树,现在通过两棵树可以构造出 ...

  8. [CodeForces 1603C] Extreme Extension(贪心 + 数论分块优化dp)

    problem CodeForces solution observation1:\text{observation1}:observation1: 对于一个非空子段 [l,r][l,r][l,r], ...

  9. codeforces 416C C. Booking System(贪心)

    题目链接: codeforces 416C 题目大意: 给出n个请求,每个请求包括客人数量和支付金额,再给出m个桌子,包括桌子大小,问如何安排才能最大盈利.给出最大盈利和一个能够最大盈利的方案. 题目 ...

最新文章

  1. ORA-00257: archiver error. Connect internal only, until freed
  2. Java集合框架源码剖析:LinkedHashSet 和 LinkedHashMap
  3. P5175 数列(矩阵快速幂)
  4. 【SSH三框架】Hibernate基金会七:许多附属业务
  5. 笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-02 单表查询
  6. MAC下MySQL初始密码忘记怎么办
  7. HDU2519 新生晚会【组合计算】
  8. 关于循环经济的三维展示
  9. 台达变频器485通讯接线图_台达变频器RS485通讯设置
  10. VMware提早放出好消息
  11. Python自动化办公 | 用Python自动生成数据日报
  12. 【Linux 4】定时任务调度与进程服务管理
  13. 我科学家研制“龙虾壳”新型仿生材料
  14. MySQL字段约束及多表查询---讲解三
  15. linux 常用文本处理工具
  16. 微信小程序:map地图自动缩放自适应大小
  17. PREFIX 参照表 网络位 对照表
  18. Hadoop权威指南(第3版) 修订版(带目录书签) 中文PDF--高清晰
  19. 萌萌动物连连看在线玩4399html5,超可爱萌物连连看! 《LINE触摸动物》上架
  20. android 打开预览不同类型文件

热门文章

  1. 图像处理程序框架—MFC相关知识点
  2. WPF ComboBox
  3. PC端QQ上下载的文件会在哪个文件夹下呢?
  4. java毕业生设计医院住院管理系统计算机源码+系统+mysql+调试部署+lw
  5. TCP/IP——OSPF单区域实验
  6. count函数的用法
  7. ESP8266开发之旅 进阶篇② 闲聊Arduino IDE For ESP8266烧录配置
  8. Cell Biolabs——细胞研究丨细胞信号通路和蛋白质生物学
  9. crawl: error: Unrecognized output format 'json''
  10. 线程和进程/阻塞和挂起