acm中multiset的用处
multiset的就是在set中不去除重复的元素,对于acm某些题目要用到二分查找某个东西然后删除掉的功能的时候是非常有帮助的。举个例子,就类比于计算机操作系统中的内存分配的最佳适应算法,每次都要找到一个最佳的分区(刚好大于或等于)的空间来分配给新的任务。相当于一个贪心的过程,multiset自带的二分还有插入删除都是logn的,所以非常适合做这类题目。
JAVA中我在百度上没找到自带的multiset方法
java和c++的set相似的set就是treeset,但是都没找到如何在treeset里实现元素可重复的方法。
自己实现
思路
既然要打acm,那肯定不能用第三方的包了
自己实现一个
先实现treeset中元素可重复
利用java中的
implements Comparable<T>
接口可以实现自定义的排序方式
那么我们可以先这样干
static class Item implements Comparable<Item> {
int a;
@Override
public String toString() {
return "Item [a="