首页 > 其他分享 >CF1775

CF1775

时间:2023-07-17 23:12:17浏览次数:38  
标签:CF1775 复杂度 第一组 最小 len 因子 sum

A1&A2.Gardener and the Capybaras (hard version)

超级诈骗题。

直接 \(O(n^3)\) 枚举肯定不行。

我们考虑两种情况:

  1. B 最小:直接看最小的字符是否在区间 \((1,len)\) 中,如果在则构造成功。

  2. B 最大:因为 B 没法做到最小,所以说明 \((1,len)\) 里全是 b,为了让 B 的字典序最大,显然选区间 \((1,len)\)。

如果两个都实现不了,就无解。

复杂度 \(O(n)\)。

B.Gardener and the Array

赛时也不知道咋回事,就是没做出来。

我们考虑枚举集合,假定只有第一组选了它,然后尝试构造。

显然,第二组为了和第一组一致,必须要有当前集合里的元素,如果没有则当前集合不能在第一组。

如果能构造出,那么可以将第二组加入到第一组中,这样就构造成功了。

感觉还挺有思维含量的。

复杂度 \(O(n)\)。

C.Interesting Sequence

手动模拟一下样例可以发现,与操作会使 n 的二进制中连续的 1 变为 0,所以我们只需要判断 k 是否为 n 的前缀,且 k 和 n 的下一位为 0 即可。

复杂度 \(O(T\log n)\)。

D.Friendly Spiders

带有技巧的最短路。

如果 u 能到 v,说明 \(\gcd(u,v)>1\),也就是有相同因子。

所以我们考虑对于每个数 u,向他的所有质因子连一条长度为 1 的边,这样我们从 u 到 v 就两步,最终答案除以 2 即可。

每次遇到一个新的因子,都要新建节点。

需要注意的是,如果 u 的质因子中有真实存在的点,那么边权要设为 2,否则会少算。

最后跑一边最短路或 BFS 就行了。

复杂度 \(O(n \log n)\)。

E.The Human Equation

思维题。

我们考虑每次 \(a\) 数组加一减一对于其前缀和 \(sum\) 的影响。

可以发现,假设相邻两次加一和减一的位置分别为 \(l\) 和 \(r\),那么 \(sum\) 在 \([l,r)\) 内会加一。

先减后加也同理。

所以,一次加减操作相当于将 \(sum\) 若干段连续序列加一或减一。

而 \(sum\) 全部为 \(0\) 是 \(a\) 都变为 \(0\) 的充要条件。

因此我们只需要计算出 \(sum\) 归零的最小操作数,也就是 \(maxn-minn\),其中 \(maxn\) 为最大正数,\(minn\) 为最小的负数。

复杂度 \(O(n)\)。

标签:CF1775,复杂度,第一组,最小,len,因子,sum
From: https://www.cnblogs.com/HQJ2007/p/17561572.html

相关文章

  • CF1775F Laboratory on Pluto - dp - 构造 -
    题目链接:https://codeforces.com/contest/1775/problem/F题解:首先考虑第一问考虑将答案的图形补成一个矩形显然出现凹槽不优,因此可以看成一个矩阵去掉几个角之后的图形......
  • CF1775F
    赛时卡在拆分数那里了。对于第一问可以发现在周长固定时两边长度越接近面积越大,于是分\(a+b\)的奇偶性讨论就可以做到这一部分。对于第二问,我们不妨设\(a<b\),枚举\(a......
  • 一个CF1775C(Codeforces Round #843 (Div. 2))的小技巧
    若\(n\)的第\(i\)位为\(1\),而我们需要不断令\(n+1\)找到下一个最小的\(k\),使得\(k\)的第\(i\)位为\(0\)。技巧:假设\(n\)为10101[1]1001,括号内是要求的第\(i\)位那么先......