首页 > 其他 > 详细

Educational Codeforces Round 111 (Rated for Div. 2) D. Excellent Arrays

时间:2021-07-15 09:51:28      阅读:11      评论:0      收藏:0      [点我收藏+]

原题链接:https://codeforces.com/contest/1550/problem/D

分析:

引入图论,1~n为点,当ai+aj=i+j时,在i和j之间连一条边;要满足ai!=i,只需要不存在奇圈;要使边数最多,即构造点集大小相差为0或1的完全二部图;

初始时,令ai=i

对k = 1, 2, ...,令二部图里一个部分里的所有数+k,另一个部分里所有数-k,直到这个部分里出现超过[l,r]范围的数;

显然,上述过程的终止只与每个部分里的min和max有关;

于是,我们枚举二分图每个部分里的min和max,计算这种情况下+k和-k分别能到多少,累加起来乘上满足这个min和max限制的二分图的个数;

更进一步,我们可以枚举max-min,复杂度O(n)

 

Educational Codeforces Round 111 (Rated for Div. 2) D. Excellent Arrays

原文:https://www.cnblogs.com/wangxiaoge2001/p/15013673.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!