【Codeforces】444 Codeforces Round #254 (Div. 1) A-F题解

传送门:CF444


A. DZY Loves Physics

可以证明 x + y + z a + b \dfrac{x+y+z}{a+b} a+bx+y+z一定没有 x + y a \dfrac{x+y}{a} ax+y y + z b \dfrac{y+z}{b} by+z优,所以答案必然是两个点和一条边。
枚举所有边即可。


B.DZY Loves FFT

任选 s ( 1 ≤ s ≤ n ) s(1\leq s\leq n) s(1sn)(标算中 s = 30 s=30 s=30),每次 O ( s ) O(s) O(s)检查 C i C_i Ci能否取到 n − ( n − s + 1 ) n-(n-s+1) n(ns+1)的值,如果都不能就暴力算 C i C_i Ci
复杂度 O ( 能 过 ) O(能过) O()


C.DZY Loves Colors

线段树维护:更新的时候遇到相同颜色的被包含的区间直接更新,否则下传标记更新孩子然后合并
复杂度 O ( 能 过 ) O(能过) O()


D.DZY Loves Strings

∣ S ∣ ≤ 4 |S|\leq 4 S4的串不超过 2 7 4 27^4 274种,哈希表存一下。
遍历整个串 v e c t o r vector vector存每个小串的出现位置。

若两个询问串出现次数都 ≤ n \leq \sqrt n n ,线性扫一遍是单调的。 m m m次询问总复杂度 m n m\sqrt n mn

若都 > n >\sqrt n >n ,用 m a p map map f [ i ] [ j ] f[i][j] f[i][j]表示第 i , j i,j i,j个串的答案,总复杂度可以证明也是 m n m\sqrt n mn 的。


E. DZY Loves Planting

二分+网络流就不说了。

并查集:

s u m = ∑ i = 1 n x i sum=\sum\limits_{i=1}^n x_i sum=i=1nxi

将边按边权升序排序,逐个枚举删去(表示仅用边权大于当前边的边):

合并当前边相连的两个连通块,设合并后连通块中点的 x i x_i xi之和为 t t t且点的个数为 c n t cnt cnt
要将这些点全部连向连通块外的点,所以需满足: s u m − t ≥ c n t sum-t\geq cnt sumtcnt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值