08/20迷迷糊糊但是好题挺多的一周

  • Weekly Contest 307
    • 赢得比赛需要的最少训练时长: 模拟题
    • 最大回文数字: 贪心
    • 感染二叉树需要的总时间: 图论模拟
    • (good)找出数组的第 K 大和: 好题目,据说是amazonOA(这么难吗…)。需要转换问题两次,其中负数的转换很巧妙。
  • Biweekly 85
    • 得到 K 个黑块的最少涂色次数: 模拟题。双指针可以简化复杂度到O(n)
    • 二进制字符串重新安排顺序需要的时间: 模拟题。
    • 字母移位 II: 把更新平摊在数轴上来优化。不要做什么题都扯到太过高级的数据结构上(比如线段树),这题没有动态跟心,没有必要用线段树。时间复杂度总和更多功能之间有tradeoff的。
    • 删除操作后的最大子段和: 反向处理query把分割操作变成合并操作+并查集。很经典了
  • Codeforces Round #816 (Div. 2):
    • Crossmarket: 贪心
    • Beautiful Array: 数学+构造
    • (good)Monoblock: 找规律+数学。
      • 奇妙地把元素之间的关系(如a_1, a_2, a_3),转化成间隙(如<a_1, a_2>、<a_2, a_3>)之间的关系。
    • (good)2+ doors: 贪心+模拟。
    • (good)Long Way Home: 好题。最短路+斜率优化dp。之前一直知道斜率优化这个名词但是从来没有学过,这次居然自己推了出来很开心!标程的写法更加优雅(按照交点排序),学习到了。
      • 在遇到dp优化的时候,不妨假设最优的 f f f是从某个 f ′ ( j ) f'(j) f(j)来的,这时候 f ′ ( j ) f'(j) f(j)应该和其他来源的 f ′ ( j ′ ) f'(j') f(j)有一个性质(如 f ′ ( j ) ≤ f ′ ( j ′ ) f'(j)\le f'(j') f(j)f(j)),把公式展开或许就可以发现如何优化这个dp了。
    • Crop Squares: 脑力IQ题。很巧妙。
  • Codeforces Round #815 (Div. 2) (离线练习)
    • 好题解
    • Burenka Plays with Fractions: 简单数学
    • Interesting Sum: 巧妙的贪心
    • Corners: 贪心
    • (good)Xor-Subsequence: 好题目。问题有一个很巧妙的转化就是把 a j ⊕ i < a i ⊕ j a_j \oplus i < a_i \oplus j aji<aij转化成 [ a j ⊕ j = a i ⊕ i ] 0... k − 1 [a_j \oplus j = a_i \oplus i]_{0...k-1} [ajj=aii]0...k1并且 [ a j ] k ⊕ [ i ] k < [ a i ] k ⊕ [ j ] k [a_j]_k \oplus [i]_k < [a_i]_k \oplus [j]_k [aj]k[i]k<[ai]k[j]k其中 [ ] k []_k []k代表二进制的第k位置。这样子就可以在 a i ⊕ i a_i \oplus i aii上做前缀树了!
    • Misha and Paintings
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
stream流的排序有两种方式,一种是使用自然排序,另一种是使用自定义比较进行排序。在使用流的sorted方法进行排序时,可以传入Comparator来指定方式。 如果要进行升序排序,可以使用方法,不传入较器,默认使用自然。例如,可以使用.stream().sorted()对列表进行升序排序。 如果要进行降序排序,可以使用sorted方法,并传入Comparator.reverseOrder()作为比较器。例如,可以使用list.stream().sorted(Comparator.reverseOrder())对列表进行降序排序。 参考资料: 项目中经常用到stream流的sorted排序,用的时候老感觉迷迷糊糊的,于是今天看了看顺便记录一下,以后再来复习。 倒序(降序) list.stream().sorted(Comparator.reverseOrder()) Stream<T> sorted(Comparator<? super T> comparator)<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [stream流中sorted排序浅析](https://blog.csdn.net/fz11zf/article/details/126399887)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [【Stream流】Sort排序详解](https://blog.csdn.net/yujing1314/article/details/112177459)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值