#P7065. [NWRRC 2014] Fragmentation
[NWRRC 2014] Fragmentation
Description
Felix 正在他的车库里进行一个创业项目。他已经为他的项目找到了一个很棒的名字:SuperFastZilla。目前他还不确定 SuperFastZilla 应该做什么,但他非常确定它应该做得很快,超级快。
有一次他注意到 SuperFastZilla 的运行速度太慢,尽管它使用了快速算法。Felix 认为问题可能是由存储碎片引起的。
SuperFastZilla 使用的存储由 个内存块组成。SuperFastZilla 在这个存储上执行一些操作。每个块只在一个操作中使用,第 个块在第 个操作中使用。
Felix 想按它们使用的操作索引对这些块进行排序。为了加快速度,Felix 想将存储分成最少数量的连续块段,然后重新排列这些段以获得排序后的块数组。重新排列后,块的操作索引顺序必须是非递减的。
帮助 Felix 找到一种分割存储的方法,以最小化段的数量。
例如,如果 ,它可以分成三部分: 和 。这些部分可以重新排列以形成排序后的数组:。
Input Format
输入文件的第一行包含一个整数 。下一行包含 个整数 。
Output Format
输出文件的第一行必须包含一个整数 — 最小的段数。
下一行必须包含 个整数,表示从左到右的段的长度。
7
2 3 1 1 2 2 1
3
2 4 1
Hint
时间限制:2 秒,内存限制:256 MB。
题面翻译由 ChatGPT-4o 提供。
京公网安备 11011102002149号