摘要:
大佬总结 这个玩意是可以动态维护第k大的值(比如中位数) 每次操作logn 我们要维护这两个堆。 我们可以以小根堆的堆顶为“分界线” 如果大于它,就加入小根堆 反之加入大根堆 如果两个堆的个数相差超过1, 就把多的那个堆的堆顶弹出来,加入另一个堆的堆顶 如果要求中位数的话,显然是两个堆中 个数多的那 阅读全文
摘要:
内容参考《算法竞赛进阶指南》 之前集训的时候听老师讲过,字符串题目中,hash一般不是正解,但是是一个优秀的暴力,可以拿比较多的部分分。 hash涉及内容很多,这里只讨论字符串hash 可以把字符串看成一个131进制位数,然后用ull储存,大过2的64次方后自动取模。 这样的话hash值相等的话可以 阅读全文
摘要:
poj 1509 不知道为什么用算法竞赛进阶指南上的那个代码交上去会WA 正解在i == j只有j++。我自己是觉得没有什么区别的,迷。 AC代码 vijos 1382 好水。就处理出最小表示然后比较就好了。 阅读全文
摘要:
模板 caioj 1177 KMP模板 caioj 1460: 【KMP】字符串匹配 重复子串结论 有一个结论。 对于字符串S[1~i],如果i % (i - next[i]) == 0,那么这个字符串就由很多个重复的子串构成(形如abababab) 每个循环节等于S[1~i-next[i]],循环 阅读全文
摘要:
大佬总结 数列分块入门 1 数列分块入门 2 可以对每一个块进行排序,用vector存储每一个块的信息 可以发现lowerbond的值恰好就是小于x的个数 数列分块入门 3 用set简直太方便!!比vector方便多了!!set可以自动排序,增加删除都很方便。 数列分块入门 4 多开一个sum数组。 阅读全文
摘要:
Merchant 有n个物品,第i个物品有两个属性ki , bi,表示它在时刻x的价值为ki × x + bi . 当前处于时刻0,你可以选择不超过m个物品,使得存在某个整数时刻t, t ≥ 0,你选择的 所有物品的总价值大于等于S. 给出S,求t的最小值。 很容易想到几个物品加起来的时候,价值是一 阅读全文
摘要:
大佬总结 通俗有趣的讲解 二分图判定(染色法) poj 2492 二分图最大匹配 ——匈牙利算法 最小覆盖点集 = 最大匹配 poj 3041 把矩阵上的点转化成边。点(x,y)即把x和y连一条边。 最后答案即是最小覆盖点集,又知最小覆盖点集 = 最大匹配 所以敲一遍模板就好了 poj 1274 裸 阅读全文
摘要:
之前的总结 区间相关问题 NOIP2018提高组金牌训练营——贪心算法专题 #10005. 「一本通 1.1 练习 1」数列极差 小的先处理,最后肯定最大 大的先处理,最后肯定最小 两个优先队列维护即可 #10006. 「一本通 1.1 练习 2」数列分段 每一段尽量大就好了,不想敲了。 #1000 阅读全文