首页 > 其他 > 详细

$CH0601\ Genius\ ACM$

时间:2019-07-24 19:58:23      阅读:166      评论:0      收藏:0      [点我收藏+]

ACWing

 

 

Description

 给定一个长度为N的数列A以及一个整数T.我们要把A分成若干段,使得每一段的‘校验值‘都不超过N.求最少需要分成几段.

 

Sol

首先是校验值的求法:

要使得‘每对数的差的平方‘之和最大,显然就是先排序,然后取最大和最小为一对,次大和次小为一对.....

然后是问题的转化:求最少分的段数,显然就是确定左端点后,在校验值不超过T的前提下尽量扩展右端点.

优化就在于右端点的扩展,当然就是用倍增辣qwq

还有就是求校验值的优化:可以不用每次都快排,而是先排增加的一段,然后归并就好了

 

Code

  Wa了inf次,明天重构qwq

 

$CH0601\ Genius\ ACM$

原文:https://www.cnblogs.com/forward777/p/11240241.html

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