[TK] 一心净士 hzoj-tg-937-2

万元申万的(不是)

嗯... 另外,这道题其实叫一心净士(shi) 而不是一心净土.

剖析

我们注意到题目要让我们使最小的自然数最大,那么我们的每一个区间都要从零开始放. 显然,假如我们所有区间里最小的一个的长度为 n ,那么我们最多只能数到 n1 ,因为再往下数的话,最短的一个区间就没地方放了.

所以说,这个题的关键就在于:如何放置这些数字,能够使所有的所有区间内都包括 0n1 之间的所有数.

对于这道Special Judge, 显然我们有很多种构造方式,题解中的办法固然正确,但是在这里给出一个更简单的通用解.

思路

好的,我们先不去考虑这道题,而是来考虑一道更简单的题:

如何排列一个无限长度的数列,使对于任意的 k 值,任取一个长度为 k 的区间,都包含 0k1 间的全部数字.

或者说给个实例:

写出一个数列,任取一个长度为 2 的区间,都包含 0 和 1 .

你肯定会这么写:0101010101010101

k=3 时你肯定会这么写: 012012012012012012

我们会发现,不仅任取一个长度为 k 的区间,都包含 0k1 间的全部数字,而且对于任意长度大于 k 的区间也有这个规律.

所以说这个题的简单构造方式就出来了:

首先找到最小长度 k .

0k1 中任意选择一个数字,按顺序依次排开.

posted @   HaneDaniko  阅读(67)  评论(3编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示