2019.09.22【NOIP提高组】模拟 A 组

这场比赛我没做,简单写一下题解。

T1:首先把所有的被减数从小到大排序,那么每次就是选取最大的c个来减。但是为了维护减完之后的序列还是从小到大的,我们不能直接把后c个减1。我们要找出a[n-c+1]所在的区间的前几个,把这几个减1,其他的不变。具体可以用线段树维护。

T2:首先考虑只有x和y时怎样做。我们肯定是先假定全部选x,然后选取y-x最大的Y个。

当加入了一维z之后,我们还是假定先全部选x。然后按照z-x从大到小排序,接着枚举一个分界线,分界线之前的选择z-x最大的Z个,分界线之后的选择y-x最大的Y个。这个是可以O(n)做到的。

T3:题解待更新

发布了149 篇原创文章 · 获赞 24 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/chiyankuan/article/details/102097229
今日推荐