P4505 [CTSC2013]组合子逻辑 贪心+优先队列
题意:
给定一个长度为n序列,可以给序列任意两数(可以不相邻)外层加上一对括号,要求每对括号内元素个数不能超过第一个元素大小,求最少能加几层括号包含所有数
范围&性质:1≤n≤2∗1061\le n\le 2*10^61≤n≤2∗106
分析:
贪心的想,肯定越大的数能包含的数就越多,且要包含所有的数,那么至少在第一个数前面加上一个括号,之后不能添加时,就从已经在括号内的数中选择最大的一个数继续添加括号,接管原有的一部分,让最外层继续扩展,可以通过单调队列实现
代码:
#include<bit
原创
2020-09-14 16:14:09 ·
100 阅读 ·
0 评论