复盘|第294场周赛
字母在字符串中的百分比
【遍历】库函数统计letter数量。
装满石头的背包的最大数量
【排序 + 贪心】排序,从小到大装。
表示一个折线图的最少线段数
【判断三点共线】
巫师的总力量和
【单调栈 + 前缀和的前缀和】用单调栈来计算左右边界,设左右边界为[L,R],设当前枚举的巫师的能力值为 v,那么他对答案产生的贡献是 v 乘上在左右边界[L,R]内的所有包含 v 的子数组的元素和的和。设子数组左端点为 l,右端点为 r,当前枚举的元素下标为 i,strength数组前缀和为s,子数组[l,r]的元素和可表示为s[r + 1] - s[l]。[L,R]内所有子数组的元素和为ΣΣ(s[r] - s[l]),ans = Σ(前缀和 s的前缀和ss 再乘上v)