A
构造一个长度为 的数组,使得它的 个循环右移中,恰好有 个是升序排序的。或判断不存在。
如果 ,输出 1 2 3 ... n
;如果 ,输出 个 。否则不存在满足要求的数组。
B
有一个 的排列 。令 。给定 ,构造一个 满足 的限制。
注意到 ,所以可以求出 ,然后一路往小推过去。
C1
有一个正 边形,给定了 个点。在这 个点之间任意连若干条不相交的线,会把多边形分成若干块。问最多分成多少个三角形。
只考虑这 个点构成的 边形。

以这种方式切分一定是最优解。能分出 个三角形。
所以答案就是 。
C2
相较于 C1,我们可以额外选择 个点加入原来的 个点中(变成在这 个点间连边)。问此时最多分成多少个三角形。
考虑原本两个关键点之间的距离 。如果 ,一开始就累加进答案;如果 ,跳过,都没有能连的地方。
-
。一个隔一个标记,标记 个贡献 。如果 ,额外贡献 。
-
。同上,但是无额外贡献。
综上,前一种情况更优。把所有 按奇偶性分成两组,分别从小到大排序,贪心地先选偶数再选奇数,可以证明是最优的。
D
有 个格子,编号为 ,初始时都是无色的,你可以对其中一些格子进行染色。
给定一个 的矩阵 中 的部分,一个染色方案的权值定义为:若该染色方案中被染色的块编号的集合等于 ,其中 ,则该方案的权值为 。求所有 种染色方案中权值前 大的值。每个测试点 组测试用例。
这个题一看就很像动态规划,但是有一个前 大,我们不是很好处理,所以我们考虑设 为前 格能获得的前 大权值,也就是每个状态是一个数组。
转移的时候就是从 的数组中取出最大的 个。于是这个题就变成序列合并。复杂度 。时限是 可以通过。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!