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

赛前训练2 连通性问题

以下,斜体表示注意点,粗体表示技巧点。

A

spfa 最长路环具有特殊性质考虑缩点

容易发现环上的点可以通过跑很多次直到点权全部为 \(0\),于是缩点跑 spfa 最长路即可。

实现

B

必经边考虑割边,割边考虑边双

我们发现,必经边是割边的子集。

考虑缩边双,这样缩成的树的边全都是割边。

既然要边最多,选直径即可。

C

图论结合背包模型

我们可以考虑把 \(p\) 个点对放进很多强连通分量里边。

然后发现这是个 01 背包模型,有 \(n\) 个物品,第 \(i\) 个体积为 \(\frac{i(i-1)}{2}\),价值为 \(i\),现在要最小化总价值。

所以第一问的答案即为 \(dp_p\)

第二问就很简单了,总共 \(\frac{dp_p(dp_p-1)}{2}\) 对点,减掉 \(p\) 个双向对是单向对个数(一定是最多的,因为去除了不连通的情况)。

实现
#include<bits/stdc++.h>
#define int long long
using namespace std;const int N=2e5+5;
int p;
int dp[N],w[N];signed main(){ios::sync_with_stdio(0);cin.tie(0);cin>>p;for(int i=1;i<=p;i++)w[i]=i*(i-1)/2;memset(dp,0x3f,sizeof dp);dp[0]=0,dp[1]=2;for(int i=2;i<=p;i++)for(int j=w[i];j<=p;j++)dp[j]=min(dp[j],dp[j-w[i]]+i);cout<<dp[p]<<' '<<(dp[p]*(dp[p]-1)/2)-p;return 0;
}

D

见题解。

http://www.hskmm.com/?act=detail&tid=12496

相关文章:

  • 用 【C# + WinUI3 + 图像动画】 来理解:高数 - 函数 - 初等函数 - 行人-
  • ansible语句
  • Window 连接 Ubuntu远程桌面
  • 代码随想录算法训练营第四天 |24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
  • 浅谈根号分治
  • 提高杂题
  • 【比赛记录】2025CSP-S模拟赛51
  • 完整教程:【前端面试题✨】Vue篇(一)
  • gdu 手机清理 空间占用
  • Android 源码解析 之 MediaPlayer
  • 5. 二叉树
  • 第二周预习作业
  • Revit二次开发环境配置
  • CF1016G Appropriate Team
  • CF494C Helping People
  • 深入解析:Extract Chart Data Directly to Excel
  • AOSP Android12 Source 下载同步
  • 02020404 EF Core基础04-自增主键、Guid主键、混合自增、Hi/Lo算法、Migration深入、数据库其它迁移命令
  • 02020403 EF Core基础03-Fluent API、Data Annotation、两种配置的选择
  • Java中异步任务的执行方式有几种?
  • 广二联考题解补全计划:
  • Chapter 8 Contour / Shape Detection
  • 【左程云算法笔记016】双端队列-双链表和固定数组实现 - 教程
  • java相关问题:面向对象入门2与类的识别
  • EXCEL自动调整列宽的快捷键
  • 【C++实战⑬】解锁C++文件操作:从基础到实战的进阶之路 - 实践
  • 破解塔吊顶升高危难题!让事故率降 50%、审批快 70%
  • logicFlow________文档2
  • CF2086D Even String
  • logicflow___文档3