Refact.ai Match 1 (Codeforces Round 985, Div. 1 + Div. 2)

Contest Link

A

Easy math problem.

Submission

B

大胆贪心猜结论,容易想到一个套路化的 stack 做法。

Submission

C

容易想到是个二分题,二分答案 k 表示答案能否 k

统计一下前缀最大然后 O(n) 的写一个 check 就可以了。

Submission

D

构造题,好题但是思路比较套路。

考虑这种构造题我们一般会怎么写,当然是往题目要求的方向去考虑:空图或者树。

  • 空图显然局限性比较大,与之相应的限制也更多,手玩一下不难发现还会出现无法构造的情况。
  • 那就尝试构造树,又有不同的两个思路了:
    • 考虑删减边的数量,因为我们知道树最多也只有 n1 条边,不需要太多
    • 考虑构造特殊树

2.2 的思路去考虑比较符合直觉,因为特殊情形比较好构造。

分三步走:

  1. 找到所有度数不小于 2 的点将其和另外两个相邻的点进行操作(边的数量会刚好 1),知道整张图只剩下散点()和散块(
  2. 若散块个数 >1,从中任选两个,再从两个散块中任选三个点操作,这样我们就 merge 了两个散块
  3. 如果有剩余的散块,选择散块的两个顶点和树根,进行 merge
  4. 对于散点,选择树根、与树根相邻一点、散点进行 merge,直到没有散点

多画图。

操作数 Sm1+n1=m+n22×max(n,m)

Submission

E

挺有意思的,思路比较好想。

2 为 base 可以生成所有合数,如果是偶数就一直 +2,否则减去其最小的质因子(先预处理好),就能将其变为偶数。而素数显然只能由本身来生成。

所以若 cntiP2,报告无解。

若只剩下一个质数 p,对其翻倍就能得到一个质因子 2,若偶数 <2p 就无解,或者奇数(合数)减去其最小质因子 <2p 也无解。

Submission

posted @   revkiru  阅读(124)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示