• Codeforces Round #683 (Div. 1, by Meet IT) 总结


    题解:
    A. 假设所有物品都小于(lceildfrac W2 ceil),只要它们的和大于或等于(lceildfrac W2 ceil),那么以任意一种顺序贪心都合法.
    B. 类似LCS的DP,只不过转移收益从(0)(1)变成(-1)(2).
    C. 把所有点放到trie树上,结论:对于每个非叶子结点,如果有两个儿子,左右子树至少有一个是链.证明:否则两边会各自连边从而不形成树.
    D. 记原来出现最多的数为(x).结论:最优解区间(x)出现次数最多.
    证明:如果存在(y)(x)多,那么对这个区间以任意顺序向两边扩展,那么(y)出现次数和(x)出现次数的差每次变化(pm1),并且最终(x)出现次数会超过(y),因此一定在某个时刻(x)(y)数量相等.
    类似地推广:考虑每个区间,只要存在(y)出现次数不小于(x)出现次数,那么答案一定不会小于该区间长度.
    D1. 对每个(y)考虑区间([L,R]),记(s_{i,x})为前(i)个数出现(x)的次数,实际上就是找(s_{R,y}-s_{R,x}=s_{L-1,y}-s_{L-1,x}).
    D2. 对出现次数超过根号次的区间进行上面的做法,然后对(k=1,cdots,sqrt n),枚举所有恰好包含(k)(x)的极大区间.
    注意,需要保证其他操作,如维护每个数出现次数以及维护最多出现次数等等操作都是(O(1))的.

  • 相关阅读:
    LeetCode 121. Best Time to Buy and Sell Stock
    LeetCode 221. Maximal Square
    LeetCode 152. Maximum Product Subarray
    LeetCode 53. Maximum Subarray
    LeetCode 91. Decode Ways
    LeetCode 64. Minimum Path Sum
    LeetCode 264. Ugly Number II
    LeetCode 263. Ugly Number
    LeetCode 50. Pow(x, n)
    LeetCode 279. Perfect Squares
  • 原文地址:https://www.cnblogs.com/Heltion/p/13983214.html
Copyright © 2020-2023  润新知