//1.字典序比较
lexicographical_compare(a.begin(), a.end(), b.begin(), b.end())
//2.递增序列
vector<int> all(100);
iota(all.begin(),all.end(),1);
//3.随机
mt19937:一种随机数生成算法
uniform_int_distribution:均匀分布
accumulate():累加求和
partial_sum:求前缀和
back_inserter():插入到容器的后面
lower_bound():查找下界
class Solution {
public:
Solution(vector<int>& w) : gen(random_device{}()), dis(1, accumulate(w.begin(), w.end(), 0)){
partial_sum(w.begin(), w.end(), back_inserter(pre));
}
int pickIndex() {
int x = dis(gen);
return lower_bound(pre.begin(), pre.end(), x) - pre.begin();
}
vector<int> pre;
mt19937 gen;
uniform_int_distribution<int> dis;
};