P5441

news/2024/10/5 7:51:12/文章来源:https://www.cnblogs.com/Carousel/p/18286878

P5441

神仙题目。

tips:后面把 \(4\) 个点说成一个组。


我们先考虑一个组怎么连才不是强联通的。

  1. 一个点 A 向另外三个点 BCD 连一条有向边。

  2. 在不满足第一种的情况下,BCD 向另一个点 A 连一条有向边。

  3. AB 之间连有向边,CD 之间连无向边,然后 AC 和 AD 连一条有向边,BC 和 BD 也连一条有向边。

以上的三种情况没有重叠,可以覆盖所有非强连通组。

接下来我们只需要最小化这一些组数即可。

第一中:

假如第 \(i\) 个点的出度为 \(d_i\),那么这个点是第一个条件中的 A 的情况数为 \(C^3_{d_i}\)

所以第一类总数为 \(\sum_{i = 1}^n C^3_{d_i}\)。并且 \(\sum_{i = 1}^n d_i = n \times \dfrac{n - 3}{2}\)

又因为 \(C_x^3 = x(x - 1)(x - 2)\),所以在 \(x \ge 3\) 的情况下是个凸函数,那么:

\[\sum^n_{i = 1} C^3_{d_i} \ge n \times C^3_{\frac{n - 3}{2}} \]

\(d_1 = d_2 = d_3 = \cdots \cdots = d_n\) 时,等号成立。所以最小值就是当 \(d_1 = d_2 = d_3 = \cdots \cdots = d_n = \dfrac{n - 3}{2}\) 时的答案。

所以第一组的总和为 \(n \times C^3_{\frac{n - 3}{2}} = \dfrac{n(n - 3)(n - 5)(n - 7)}{48} = \dfrac{n(n - 3)(n ^ 2 + 6 \times n - 31)}{48}\)

第二和第三种:

这组通过构造可以是答案变为 \(0\)。构造方法如下:

首先我们需要满足第一组的条件,所以每一个点必须连 \(n - 1\) 条边,而其中有 \(\dfrac{n - 3}{2}\) 的边都是向外得边。

从这个点连出的的 \(1\) 到第 \(\dfrac{n - 3}{2}\) 条边都是从自己出发的有向边,第 \(\dfrac{n - 1}{2}\) 和第 \(\dfrac{n - 3}{2}\) 条边是无向边,其余的都是到自己的边。

\(n = 5\) 时,图长这样:

这样子就不能满足第二和第三种的条件了。所以这两种的答案为 \(0\)

所以答案为 \(\dfrac{n(n - 3)(n ^ 2 + 6 \times n - 31)}{48}\)

最后给出构造的代码:

for(int i = 1;i <= n;i++)
{for(int j = i + 1;j <= i + (n + 1) / 2;j++){a[i][(j - 1) % n + 1] = 1;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/739163.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二水中分白鹭洲

二水中分白鹭洲 题目大意 假设水中 \(n\) 条体积相等的鱼将按顺序依次排列,准备进行战斗。初始时,每条鱼可以选择向左游或向右游;但是鱼儿不太聪明,它们只会随机选择初始方向。 战斗时,若两条不同方向的鱼相遇,则体积大的鱼会吃掉体积小的鱼;如果两条鱼的体积相同,则向…

git恢复到之前提交的记录

项目搞崩了,还提交上去了怎么办? 那当然是恢复到之前的提交记录了,那怎么操作呢? 首先,到代码托管平台找到你想恢复的提交记录(在此以github为例) 获取 commit id 首先,通过如下图操作获取到commit id {% asset_img image-20240706062921362.png "..." "…

[python]Markdown图片引用格式批处理桌面应用程序

需求 使用python编写一个exe,实现批量修改图片引用,将修改后的文件生成为 文件名_blog.md。有一个编辑框,允许接收拖动过来md文件,拖入文件时获取文件路径,有一个编辑框编辑修改后的文件的输出路径,用户拖入文件时,就能自动得到输出的路径 作用是将md文件中的例如 ![ima…

读人工智能全传04NP完全问题

读人工智能全传04NP完全问题1. 问题解决与搜索 1.1. 解决问题的能力无疑是区分人类和其他动物的关键能力之一 1.1.1. 解决问题是需要智慧的 1.2. 汉诺塔 1.2.1. 对于三个金环而言 1.2.1.1. 你不可能找到少于7次的解决方案了 1.2.2. 最初,我们只能选择移动最小的金环,只有将它…

sunny 拦截不成功解决

可能开了tz,导致无法拦截请求 解决方法:打开这个注释本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/18286840

02.内建变量类型

内建变量类型bool,string(u)int,(u)int8,(u)int16,(u)int32,(u)int64,uintptr 无长度 int 的实际长度取决于操作系统位数(32/64)uintptr 为指针类型byte,rune rune 为 Go 语言的字符型相当于其他语言的 char ,长度为4字节 int32float32,float32,complex64,complex128 complex …

01.变量定义

变量定义 新建项目func variableZeroValue() {//赋空值var a intvar s stringfmt.Printf("%d %q\n", a, s) } 变量赋空值func variableZeroValue() {//赋空值var a intvar s stringfmt.Printf("%d %q\n", a, s) } 变量赋初值func variableInitialValue()…

7.5 - 贪心篇完结

435. 无重叠区间 题意描述:[!WARNING] 给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 示例 1: 输入: intervals = [[1,2],[2,3],[3,4],[1,3]] 输出: 1 解释: 移除 [1,3] 后,剩下的区间没有重叠。…

redis zset 多值排序

最近面试老被问到ZSet相关的排序题,平时也没相关的经验,一问一个不吱声。抽有点时间,自己尝试去想了一种解决方案。 ZSet相关常用命令 添加成员ZADD [Key] [Score] [Member] //例 向班级a里面插入小明的80分 ZADD a 80 xiaoming有序获取//从低到高获取指定区间的人…

Git的基本应用

Git工作区:就是你在电脑里能看到的目录。也就是放置源码的地方。和.git文件同级目录下 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。 版本库:工作区有一个隐藏目录 .git,这个不算工作区…

2024.7.5 CTF MISC 任务清单

目录:数据包中的线索荷兰宽带数据泄露被偷走的文件 数据包中的线索 BUUCTF在线评测 (buuoj.cn) 打开一看是可以用wireshark 流量分析的题 直接查http的包即可 (大部分都是TCP的包,直接过滤http的包) 然后保存就会得到 php 文件 ,直接打开它,似乎是Base64解密 解密后看到…

Go语言高级数据类型之指针篇

目录一.指针1.指针概述2.指针地址和指针类型3.定义指针变量4.指针细节4.1 可以通过改变指向值4.2 指针变量接收的一定是地址值4.3 指针的地址不可以不匹配4.4 基础数据类型又称为值类型5.指针传值5.1 案例一5.2 案例二(注意,数组也是值类型哟~)二.new和make1.new1.1 new概述…