首页 > 其他分享 >7月杂题

7月杂题

时间:2023-07-10 23:37:59浏览次数:30  
标签:集训队 tight 2021 区间 考虑 杂题 互测

1.CF1835F Good Graph

判定 Yes or No 等同于判是否存在最大匹配。

如果不存在,考虑找到一个不在匹配的左部点,在残量网络上 bfs 即可。

如果存在,考虑 tight 集合是怎么构成的。如果 \(S_i\) 表示包含左部点 \(i\) 的最小 tight 集合,发现每个 tight 集合都是一些 \(S_i\) 的并。

考虑怎么简化 \(S_i\) 的表示。

考虑如果存在边 \((i,j)\) 满足 \(i\in S\) 且 \(i\) 不与 \(j\) 匹配,我们就需要把与 \(j\) 匹配的点加进来。由此能连一张图出来,形式化的,若 \(m_j\ne i\) ,就把 \(i\) 连向 \(m_j\)。

\(S_i\) 就是 \(i\) 能到达的点集。现在问题转化成连尽量少的边使新图和原图的传递闭包相同。缩点后在每个 SCC 内连环,然后在 DAG 上存在 \((x,y)\) ,\((y,z)\) 就删掉 \((x,z)\) 。

可以 bitset 实现,总复杂度 \(O(n^{2.5}+\frac{n^3}{w})\) 。

2.CF1753E N Machines

由于答案不超过 \(2*10^{9}\) ,非 \(1\) 的乘法操作显然不超过 \(30\) 个。

我们会在其中选一些移到最后面。注意到对于乘数相同的操作,我们只会选一个前缀。所以可能的方案是不多的,具体的,不超过 \(5000\) 种。

此时可以得到加法操作次数的上界 \(K\) ,我们会选对答案贡献尽量大的到前面。二分第 \(K\) 大的值,对每一段 lower_bound 计算即可。

3. ARC163F Many Increasing Problems

咕。明天写。

4. P6256 [ICPC2019 WF] Directing Rainfall

其实是简单题。以前一直不敢写,今天写了发现很简单。首先通过扫描线可以得到线段间的拓扑序,我们从上往下 dp 。

维护 \(f_i\) 表示当前雨的坐标在 \(i\) 需要钻的洞数最小值。则我们需要支持区间加,区间取前缀最小,区间取后缀最小,最后查一遍区间最小。

考虑用线段树维护这个过程,比较难的是后两个操作。

如果一个区间不降/不增,我们就直接当成区间取 min 操作打 tag 。否则就递归做下去。为什么是对的?

考虑一次操作后 \([f_i<f_{i+1}]\ne [f_{i+1}<f{i+2}]\) 的位置只会增加 \(O(1)\) 个,而我们通过上面的方法保证了,如果位置减少量为 \(k\) ,则复杂度是 \(O(k\log n)\) 的。

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

5.P9158 「GLR-R4」小暑

直接做是非常难写的,但考虑这个往上合并的过程,我们实际上可以把这个树重构成二叉树!

考虑在新树上 \(p(v)\) 得到的结果为原树中 \(v\) 的子树得到的结果。现在我们要依次合并 \(x,p(v_1),p(v_2),...,p(v_m)\) 。

就是新建 \(m\) 个点 \(a_1,a_2,...,a_m\) ,\(a_i\) 左儿子为 \(a_{i-1}\) ,右儿子为 \(p(v_i)\) 。特别的,\(a_1\) 左儿子为 \(x\) 。最后 \(p(x)=a_m\) 。

这样就把图转成了二叉树,在上面用树剖简单维护即可。

6. AGC061E Increment or XOR

7.CF1446F Line Distance

8.P7712 [Ynoi2077] hlcpq

9.LOJ578. 「LibreOJ NOI Round #2」小球进洞

10.LOJ3652. 「2021 集训队互测」海胆

11.LOJ3695. 「JOISC 2022 Day4」鱼 2

12.LOJ3153. 「JOI Open 2019」三级跳

13.LOJ3631. 「2021 集训队互测」学姐买瓜

14.LOJ3661. 「2021 集训队互测」蜘蛛爬树

15.UOJ719. 【北大集训2021】经典游戏

16.P8497 [NOI2022] 移除石子

17.CF1599A Weights

明天再来写题解,现在睡了。

标签:集训队,tight,2021,区间,考虑,杂题,互测
From: https://www.cnblogs.com/cwhfy/p/17542653.html

相关文章

  • 计数杂题
    搞一点计数题放在这,看到有意思的计数就更(虽然在组合数学那已经更了好多了)。[CTSC2017]吉夫特给定一个长度为\(n\)的序列\(a\),保证\(a_i\)互不相同。求出有多少个长度大于等于二的序列满足\[\prod_{i=2}^{k}\binom{a_{b_{i-1}}}{a_{b_i}}\bmod2=\binom{a_{b_1}}{a_{......
  • 2023.7.5 杂题
    CF1174FEhabandtheBigFinale树链剖分。先s1求出\(x\)所在子树\(y\)。若\(y\)为\(1\)轻儿子,递归求解\(y\)。若\(y\)为重儿子,那么找到重链上与\(x\)深度相同的节点\(c\).调用dc,此时\(c\)向上跳\(x\)与\(c\)距离的一半便是\(lca\),递归求解。相当......
  • 【杂题乱写】6 月多校分治专题训练
    AGym-101471DMoneyfornothing就是求\((d_j-c_i)(q_j-p_i)\)的最大值。可以看作点对\((d_j,q_j)\)与\((c_i,p_i)\)在二维平面上构成矩形的最大值,且\(c_i\ged_j,p_i\geq_j\)。把卖家点对放在序列\(a\),买家点对放在序列\(b\),先删去一定不优的点,删完之后\(a,b\)都......
  • 【杂题乱写】6 月多校分治专题训练
    AGym-101471DMoneyfornothing就是求\((d_j-c_i)(q_j-p_i)\)的最大值。可以看作点对\((d_j,q_j)\)与\((c_i,p_i)\)在二维平面上构成矩形的最大值,且\(c_i\ged_j,p_i\geq_j\)。把卖家点对放在序列\(a\),买家点对放在序列\(b\),先删去一定不优的点,删完之后\(a,b\)都......
  • 【杂题乱写】6 月多校分治专题训练
    AGym-101471DMoneyfornothing就是求\((d_j-c_i)(q_j-p_i)\)的最大值。可以看作点对\((d_j,q_j)\)与\((c_i,p_i)\)在二维平面上构成矩形的最大值,且\(c_i\ged_j,p_i\geq_j\)。把卖家点对放在序列\(a\),买家点对放在序列\(b\),先删去一定不优的点,删完之后\(a,b\)都......
  • 7月CF杂题
    怎么七月了?六月的只写了一道题捏。EducationalCodeforcesRound151(RatedforDiv.2)俺寻思能行。D.RatingSystem为什么大家都切那么快捏。显然\(k\)一定是\(a\)数组的一个前缀和。假设\(k=\sum\limits_{i=1}^xa_i\),剩下的等价于处理初值为0且\(k=0\)的子问......
  • 6月AT杂题
    AtCoderBeginnerContest307G-ApproximateEqualization好蠢的G,但居然是*2330。显然所有数一定是\(x,x+1\)之一。因为操作不会让整个数列的和发生变化,所以我们可以求出\(x,x+1\)的具体值以及出现个数。定义\(f_{i,j}\)表示前\(i\)个数中有\(j\)个\(x+1\),因为......
  • 【杂题乱写】6 月多校字符串专题训练
    ACodeForces-547EMikeandFriends*2800肯定要建广义SAM。在每个\(cur\)打一个标记,没有区间限制就在对应节点上查一下后缀树子树标记总数,有区间限制线段树合并维护标记。点击查看代码intn,q;chars[maxn];intmark[maxn];structSegmentTree{#definemid((l+r)>......
  • 【杂题乱写】6 月西安多校 DP 专题训练
    这也太难了!这也太难了!这也太难了!AUOJ-607UR#20跳蚤电话加点操作太抽象,改成删点,每次可以删一个叶子,或者删一个只有一个父亲和一个儿子的节点。算方案还带顺序,子树间再算多重集组合数不方便,不如直接算任意顺序删点最后合法删完的概率。设\(f_u\)为按任意顺序删点删完\(u\)......
  • 6.19 杂题
    【山东省选集训2023】T1.树染色有多少种选出\(\{(u_1,v_1),(u_2,v_2),...,(u_m,v_m)\}\)的方法,使得:任意\(u_i\)是\(v_i\)祖先;\(u_1=1\);对于任意\(i\ge2\),存在\(j<i\)使得\(u_i\)在\(u_i\tov_i\)的路径上;所有边被至少一条路径\(u_i\tov_i\)覆盖。对每......