本人已ak,第二题分成递增和递减两种情况讨论,分别离散化后找环,所有环的周长-1的和就是答案,最后俩情况取min。第三题动态规划,dp[i]表示[1,i]内能得到的答案,枚举i,往前遍历找到第一个与a[i]相同的值,下标为mid,查询已经遍历的区间内有无另一个值的个数大于1,如果有,dp[i]=max(dp[i],dp[mid-1]+1),如果无,则继续往前遍历,找到第一个满足区间内a[i]的个数大于3或者不为a[i]的个数大于1的下标pos,则dp[i]=max(dp[i],dp[pos-1]+1),最后区dp[i]=max(dp[i],dp[i-1])。最终答案就是dp[n]。
7 7

相关推荐

点赞 评论 收藏
转发
牛客网
牛客企业服务