思路 磁带碎片

思路
某一碎片当前所在点为起点指向应去往的点,形成环或平面;
可用dfs,深搜一个点,存步数,再从此点之前深搜其他点

原题
出于最高安全性考虑,司令部采用了特殊的安全操作系统,该系统采用一个特殊的文件系统。在这个文件系统中所有磁盘空间都被分成了相同尺寸的N块,用整数1到N标识。每个文件占用磁盘上任意区域的一块或多块存储区,未被文件占用的存储块被认为是可是用的。如果文件存储在磁盘上自然连续的存储块中,则能被以最快的速度读出。 因为磁盘是匀速转动的,所以存取上面不同的存储块需要的时间也不同。读取磁盘开头处的存储块比读取磁盘尾处的存储块快。根据以上现象,我们事先将文件按其存取频率的大小用整数1到K标识。按文件在磁盘上的最佳存储方法,1号文件将占用1, 2, …, S1的存储块,2号文件将占用S1+1, S1+2, …, S1+S2的存储块,以此类推(Si是被第i个文件占用的存储块的个数)。为了将文件以最佳形式存储在磁盘上,需要执行存储块移动操作。一个存储块移动操作包括从磁盘上读取一个被占用的存储块至内存并将它写入其他空的存储块,然后宣称前一个存储块被释放,后一个存储块被占用。 本程序的目的是通过执行最少次数的存储块移动操作,将文件安最佳方式存储到磁盘上,注意同一个文件的存储块在移动之后其相对次序不可改变。
输入
第一行包含两个用空格隔开的整数N和K(1≤K≤N≤100000), 接下来的K行每行说明一个文件,对第i个文件的说明是这样的:首先以整数Si开头,表示第i个文件的存储块数量,1≤Si≤N-K,然后跟Si个整数,每个整数之间用空格隔开,表示该文件按自然顺序在磁盘上占用的存储块的标识。 所有这些数都介于1和N之间,包括1和N。一个磁盘说明中所有存储块的标识都是不同的,并且该盘至少有一个空的存储块。
输出
第1行:输出一个整数M,表示将文件按最佳方式存储到磁盘上所需进行的最少存储块移动操作次数。如果文件已按最佳方式存储,则输出0。
样例输入 Copy
20 3
4 2 3 11 12
1 7
3 18 5 10
样例输出 Copy
9
提示
本题可以看作是一个置换的调整问题。按文件块的目标位置对文件块编号后,调整文件块位置的问题就转化为调整置换的问题了。不过,本题还有一点特殊之处,就是存在一些数,它们不要求归位,这些数可作为交换空间。 找出所有的循环节,分情况讨论。如果一个循环节上所有的数都是要求归位的,那么必须先利用交换空间将一个数先交换出去,然后其他数都归位,最后再把交换出去的数换回来。如果这个循环节上有不需要归位的数,则可直接贪心,将可以归位的尽量归位即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值