AtCoder Beginner Contest 173 题解

这场的 F 题太逆天了。

AC 代码传送门:
https://atcoder.jp/contests/abc173/submissions/me?f.Task=&f.LanguageName=&f.Status=&f.User=HinanawiTenshi

E

分类讨论 + 贪心。

  • 结果 res 为负数时,说明 k 为奇数而且所有数为负数,那就从大到小选取即可。
  • 结果 res 非负时,如果 k 为奇数,那么我们必然要先选一个最大值,问题统一化为 k 为偶数怎么选。注意到最后选取的结果必然是偶数个非负,偶数个负数,我们采取贪心,对数列从大到小排序,如果左部分的两个数大于右部分,那就选左部分,否则选右部分。

F

题意:统计树上编号 [l,r] 所对应的点连通块的数量,l[1,n],r[l,n]

代码极短的思维题。

我们首先假定所有点为孤立点,那么对于编号为 i 的点,它的贡献为 i×(ni+1)

接下来我们直接按输入顺序连边即可(连边过程类似生成树)。

那么对于边 (u,v),它相当于使 [1,u]×[v,n] 的连通块个数 1

posted @   HinanawiTenshi  阅读(86)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示