tg 75 solution
T1
就是有这样一个事情,一个
证明考虑
当
最优情况下是对于前
这个时候,由于你往后移动了一个数,
相当于删掉一个数但是加回来一个不同的数,
所以和至少会减
这样极差最少是
否则,每个和变化
发现
因此
考虑构造,
面向样例编程于是会发现构造形如
于是构造方式就显然了
并不好文字叙述的构造方式
a[n] = 2 * n, a[n + 1] = 1;
int l = 1, now = 2, r = n + 2;
for (int i = 1; i <= n / 2; i++) {
a[l] = now;
a[l + 1] = now + 1;
a[r] = now + 2;
a[r + 1] = now + 3;
l += 2, r += 2;
now += 4;
}
上述构造方式满足删掉最前面的数,加入最后面的数的时候
前
然后初值恰好为
然后它们就恰满足极差等于
T2
注意到
然后
注意到这两个点的点数和恰为
所以一个不存在,另一个必存在,
(所以另外有一个东西就是Impossible
是Impossible
的)
证明考虑接下来的构造方式
对于每条边,尝试将其加入匹配
如果成功加入
否则,因为匹配用掉的点数不足
然后,不在匹配中的点,其所有连边必然和在匹配中的点连边
否则就可以将其加入匹配
事实上,在匹配中的点集和不在匹配中的点集交集为空
所以,我们选出
也就是一个独立集了
实现考虑用一个vis
数组记录每个点有没有在匹配当中
如果两个点都没在匹配当中,两个点vis
都设成
如果答案集合边数够了
到最后边加完了答案集合都没有到vis
是
T3
参考排序那道题,二分中位数
然后
然后有如果两个相邻的
否则返回第一个元素在
T4
黑的,没改
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具