随笔分类 - 数据结构--链表
摘要:n≤50000的序列,问选不超过m≤50000个区间使得和最大。 如果正数区间总数比m小那肯定全选。否则有两种方式减少区间数量:丢掉一个正区间;补一个负区间连接两个正区间。贪心即可。 先把左右端的负数去掉,然后把正区间和负区间处理出来。优先队列维护区间值,然后开个链表
阅读全文
摘要:n≤100000个点,m≤2000000条边,给点分组,两个点能在不同组必须两点之间有边,问最多分多少组以及每组人数。 条件翻译下变成两点之间没边必须在一个组,于是就可以n2α(n)轻松过掉这题。 好的严肃。把复杂度转到m上,想一种跟m有关的暴力:
阅读全文
摘要:n≤100000的数列给m≤300000的询问,每次问一个区间里选两个数差的最小值。数字≤1e9。 根号算法: 无脑莫队加个平衡树或者权值线段树来查前驱后继是n√nlog2n的。 如果只有删除可以用链表实现,所以想办法去掉插入操作。对左端
阅读全文
摘要:n<=100000个山,每个山有高度,从一个山到另一个山代价为高度差,有A和B两人一起开车,A每次选前进方向的次近山,B选最近,保证山高度不同且如果代价相同的山低的代价算小,每次旅行先A走,然后B,然后AB轮流开车,旅行如果下一次找不到目的地或者下一次到目的地时总代价超过了指定的X,他们就会停下。现
阅读全文