hdu6049】的更多相关文章

hdu6049 题意 给出一串由 \([1, n]\) 组成的 \(n\) 个数,每个数字都不相同.现在要尽可能的分成多个块,每个块内的数可以任意排序,且分完块后可以交换两个块的位置,问使得最后序列有序可以最多分成几个块. 分析 首先暴力预处理出 \(f[i][j]\) 表示区间 \([i, j]\) 最多可以分成多少块(只有某一段区间的所有数字重排后连续才能当做一块,这个可以通过预处理出区间最大值.最小值去判断,而要想形成多个块,必须保证最小值不能改变,一定是第一个块的最小值).( \(O(n…