正睿csp-s 7连测 day 7

总结

由于晚上六点尚处于机房的打摆时间,所以先颓了三十分钟。
\(5\) 分钟写完 t1,继续摆到七点。
t2 想了一会,一开始以为是先贪心 + dp,发现被样例卡了。然后再想了一个 dp + 贪心,过了大样例。好像过了?
t3 想了半小时,好像是线段树,但一时不知道维护什么。先写了一个 \(60\) 分暴力。
t4 看了一眼瞬间没有写的欲望。
结果:100+70+60+0
上了点分,开心。

解析

A. 庄园(manor)

难度:橙
从左到右枚举即可。

B. 背包(knapsack)

难度:绿
\(dp\) 题。
在背包 \(dp\) 的同时维护价格大于 \(j\) 的珠宝的最大美丽度和即可。

C. 填色(paint)

难度:蓝
假设 \(ans_i\) 为大小为 \(i\) 时的答案,\(cnt_i\) 为大小为 \(i\) 时的极大交替组数量。
则有:

\[ans_i=\sum\limits_{k\geq i}(k-i+1)*cnt_k=ans_{i+1}+\sum\limits_{k\geq i}cnt_k \]

考虑用线段树进行维护。

D. 小镇(town)

难度:紫

首先,我们先想一想要加几条特殊道路。

我们知道无向图中存在欧拉回路的条件是不存在度数为奇数的点。

而使一个连通图存在欧拉回路的方法为加入 度数为奇数的点数\(/2\) 条边。但这里还有很多可选道路,考虑如何处理。

记全体必经道路为 \(E_1\),可经道路为 \(E_2\)。记录每个结点在图 \(G_1=\langle V,E_1\rangle\) 中的度数,记作 \(deg_i\)。把点按照 \(deg_i\) 的奇偶性分成两类,奇为 \(A\) 点,偶为 \(B\) 点。

我们要用 \(E_2\) 中的边将 \(A\) 点两两相连。设图 \(G_2=\langle V,E_2\rangle\)。将 \(G_2\) 分成几个极大联通子图,设这些子图中有偶数个 \(A\) 点的称为 \(C\) 块,有奇数个的称为 \(D\) 块。

容易证明,\(C\) 块中的 \(A\) 点是可以通过 \(C\) 块中的路径两两相连的。\(D\) 块中的 \(A\) 点不能两两相连,因为到最后总会剩下一个 \(A\) 点。所以,特殊通道的数量为 \(D\) 块数量的一半。

然后想想至少走几条可选道路。

观察性质,我们发现 \(G_2\) 由一些基环树和树组成。

对于树,我们可以在上面加一个自环让其变成基环树。

现在我们考虑环上的每个点分出去的子树中最少需要走多少条可选道路。

若为 \(C\) 块,则树上只有一种情况,而环上则为两种,\(dfs\) 计算出即可。

若为 \(D\) 块,则可以 \(dp\) 出每个点连接特殊道路后最少走多少条。

懒得自己写了,就把官方solution放出来吧。

posted @   nagato__yuki  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示