令D为距离的集合,设D={1,2,2,2,3,3,3,4,5,5,5,6,7,8,10},一共6个站点。问题的解,收费站的位置为 x 1 = 0 , x 2 = 3 , x 3 = 5 , x 4 = 6 , x 5 = 8 , x 6 = 10 x _{1}=0,x_{2}=3,x_{3}=5,x_{4}=6,x_{5}=8,x_{6}=10 x1=0,x2=3,x3=5,x4=6,x5=8,x6=10
这里存放距离的数据结构使用了STL中的multiset,头文件为set,特点是插入元素是有序的。注意multiset在删除时有两种用法,特定的值作为参数时会将该值的所有元素全部删除。
操作 | 效果 |
---|---|
c.erase(elem) | 删除与elem相等的所有元素,返回被移除的元素个数。 |
c.erase(pos) | 移除迭代器pos所指位置元素,无返回值。 |
#include<iostream>