当前位置: 首页 > news >正文

题解:P14023 [ICPC 2024 Nanjing R] 社交媒体

简化题意

给你 \(k\) 个点以及 \(m\) 条边,其中有 \(n\) 个点已经被选择,问至多再选两个点后最多有多少条边的端点都被选了。

思路

我们可以把边分为 \(3\) 类:

  • 两个端点都被选择了,这时直接加入答案。
  • 有一个端点被选择,我们将另一个端点的贡献 \(+1\),特殊的,自环也算这种情况。
  • 两个端点都没被选择,则先把这条边存起来。

选择可以分为 \(2\) 类:

  • 选择的两个点之间没有联系,或只能选一个点:
    我们将所有点的贡献排序,选最大的两个(被选择的点没有贡献;虽然这两个点之间可能会有边,但是不影响最终答案,可以自己想一下为什么)。
  • 选择两个之间有边的点,这时候枚举每一条边,答案的变化量为 两个端点的贡献之和 \(+\) 这条边的出现次数。
    排序后可以轻松完成。

code

pl 就是贡献数组,pl2 是贡献数组的备份,方便计算的时候直接用,不用再排序一次。
ans 是不选的时候的答案,change 是答案的最大变化量。

点击查看代码
cin >> n >> m >> k;ans = 0 , edge.clear() , cnt = 1;
for(int i=1;i<=k;i++)pl[i] = pl2[i] = 0 , fl[i] = 0;
for(int i=1;i<=n;i++){int x;cin >> x;fl[x] = 1;
}
for(int i=1;i<=m;i++){int u , v;cin >> u >> v;if(fl[u]&&fl[v])ans++;else if(fl[u]||u==v)pl[v]++ , pl2[v]++;else if(fl[v])pl[u]++ , pl2[u]++;else edge.push_back({u,v});
}
sort(pl+1,pl+k+1);
sort(edge.begin(),edge.end());
int change = pl[k] + pl[k-1]; 
for(int i=0;i<edge.size();i++){if(i&&(edge[i].u!=edge[i-1].u||edge[i].v!=edge[i-1].v))cnt = 1;change = max(change,pl2[edge[i].u]+pl2[edge[i].v]+cnt) , cnt++;
}
cout << ans + change << "\n";
http://www.jsqmd.com/news/19490/

相关文章:

  • docker安装iotdb
  • 第一个 AI 应用
  • 《无垠的太空(8).提亚玛特之怒》电子书(1-9章)
  • 2025年10月微高压氧舱厂家全景解析报告,基于专业测评的技术、性能及市场优势深度分析
  • Kubernetes应用微服务 - 指南
  • 看板(Kanban)的使用
  • 161行的华容道程序
  • 调用ack集群 api 接口删除Terminating状态的资源
  • 二十三、K8s企业级架构设计及落地
  • 题解:P9464 [EGOI 2023] Padel Prize Pursuit / 追梦笼式网球
  • 软件工程课程第二次团队作业
  • AGC 板刷记录2
  • 2025 年涿州装修公司最新推荐榜,深度解析企业服务能力与市场口碑优势
  • 结对编程项目总结
  • 刘强东带火数字人直播?商业化逐步成熟,逐渐取代真人带货!zhibo175
  • Hive事务管理详解:从ACID原理到UPDATE/DELETE实战 - 实践
  • TabControl控件
  • 权威调研榜单:硬质合金挤压模具厂家TOP3综合实力深度解析
  • 详细介绍:【Linux指南】gdb进阶技巧:断点高级玩法与变量跟踪实战
  • Nacos 3.1.0 正式发布,支持 A2A 注册中心与 MCP 注册协议增强
  • 2025 年点火器厂家最新推荐排行榜:综合评估高能 / 自动 / 防爆等多类型产品,精选优质品牌
  • VS2026 使用 WebDeploy 发布到 IIS - Jeff
  • 2025 激光灯厂家最新推荐榜:全方位测评核心实力与潜力,甄选优质供应商实用指南
  • SpringBoot3 集成Junit4 - 实践
  • 详细介绍:Spark Shuffle:分布式计算的数据重分布艺术
  • 2025 年火焰检测器生产厂家最新推荐权威排名:涵盖防爆 / 一体化 / 紫外线 / 离子 / 红外线 / 红紫外复合 / 智能型,多维度解析助力企业精准选型
  • 排序算法的介绍
  • 调理neovide之 自定义keymap-不用starter-template的话,直接init.lua中改
  • MyEMS:用开源撕开能源管理 “黑箱”,让节能不再 “凭感觉”
  • FPGA控制RGMII接口PHY芯片基础