题目: 大概意思就是给你一个序列,你可以选择一段区间使它左右翻折一遍,然后呢,从1到n找一遍,看a[i]==i的数最多是多少. 其实刚才我已经把暴力思路说出来了,枚举每一个区间长度,枚举每一个左端点,再查询a[i]的值,时间复杂度O(n^3^). 稍微优化一点,枚举每一个中点,左右扩展的同时查询,复杂度O(n^2^)(注意中点有可能不是点,可能是两个点中间,不考虑这个会被卡20分) 正解: 我们需要考虑下面两个性质: 性质1:对于一个点i,如果想让它满足条件,它的翻折区间是从i到a[i],在这个…