题意 给出一个长度为NNN的序列,求对于所有k∈[1,N]k\in[1,N]k∈[1,N],每次从序列中选出kkk个互不相同的数,最多能取多少次. N≤3e5N\le3e5N≤3e5 题解 我们首先把数组转化为相同的数的出现次数的序列,如序列(1,3,4,4)(1,3,4,4)(1,3,4,4)就转化为(1,1,2)(1,1,2)(1,1,2).把这个得到的序列计作aaa. 然后二分答案,假设当前二分到xxx,能取xxx次的条件是: (∑ai≤xai)+x⋅∑ai>x1≥k⋅x\large(\s…