ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【总结】USACO2022FEB

2022-03-01 22:03:35  阅读:144  来源: 互联网

标签:总结 sum times 划分 复杂度 USACO2022FEB mathcal 线段


Gold

T1

对于每一行,从 \(i\) 向在 \(i\) 前面的点(包括自己)连边,那么原题转化为将给定有向图划分成若干个简单环的方案数,预处理环后 DP 即可,时间复杂度 \(\mathcal{O}(n^32^n+3^n)\)。

T2

很强的期望题,我们定义状态 \(f_{i}\) 表示 \(i\) 次询问的期望最优对多少个,显然有 \(f_{i} = \sum\limits_{j=0}^{T}p_j\times \max\{j, f_{i - 1}\}\)。

\(p_i\) 表示恰好对 \(i\) 个的概率,求出 \(\{p\}\) 的前缀和 \(\{s\}\),再预处理期望 \(e_{i} = \sum\limits_{j = i} ^ T p_j\times j\),那么转移可以写成 \(f_{i} = s_{\left\lfloor f_{i - 1}\right\rfloor} \times f_{i - 1} + e_{\left\lfloor f_{i - 1}\right\rfloor + 1}\)。

不难发现转移可以划分成 \(\mathcal{O}(T)\) 个连续段,段内转移都是相同的 \(f_{i} = kf_{i - 1} + b\),每次二分端点即可,时间复杂度 \(\mathcal{O}(T^2 + T\log k)\)。

T3

对于每个点,对于每个 \(y\) 找最近的 \(x\) 连边,然后跑最小生成树即可。

Platinum

T1

先用扫描线将矩形变为一次线段加和一次线段减。

每次线段变化时,将修改的区间内,所有的颜色段都新增一个连通块,记录到答案中。

在线段减时,要将两端的颜色段合并掉,在答案中减去。这些都可以用树状数组维护。

但是发现过不去样例二,观察一下发现样例一所有线段连通,而样例二有两个连通图。

所以我们再用 set 维护一下有多少个线段构成的连通图。总时间复杂度 \(\mathcal{O}(N\log N)\)

T2

对 \(\{a\}\) 求得前缀和 \(\{s\}\),手盘样例得到如果 \(q_i | s_n\) 则答案为 \(n+1+\dfrac{s_n}{q_i} - 2\times sum\),\(sum\) 表示 \(\{s\}\) 中有多少个 \(q_i\) 的倍数,否则无解。

直接做是 \(\mathcal{O}(QN)\),实际上还能多过几个点。

考虑优化,由于我们只用考虑 \(q_i | s_n\) 的情况,所以我们先 pollard-rho 将 \(s_n\) 分解质因数,最多就 \(10^5\) 个因数,然后高维前缀和搞一下即可,时间复杂度 \(\mathcal{O}(\omega(\sum a)\sigma(\sum a))\)。

T3

非常神的 DP。

我们定义状态 \(f_{i}\) 表示前 \(i\) 位的答案。

有三种转移,分别对应划分最后 \(1\) 位,划分最后 \(2\) 位和划分最后 \(4\) 位。

但是这些情况会重复,考虑容斥掉相同的,大力讨论一下。

具体实现了一个 \(calc(x,op)\) 函数,表示对以 \(x\) 结尾的最后 \(4\) 位划分成一段,最后两位不变,倒数三四位交换的方案对 \(f_{op}\) 的贡献。如果 倒数三四位能够交换就直接返回,否则倒数第 \(6\) 位到倒数第 \(3\) 位必须能划分成一段,然后递归到 \(calc(x-2,op)\) 即可。

其余的细节省略,复杂度感觉是 \(\mathcal{O}(|s|^2)\),实际上跑起来 \(100ms\) 都不要。

标签:总结,sum,times,划分,复杂度,USACO2022FEB,mathcal,线段
来源: https://www.cnblogs.com/7KByte/p/15952784.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有