当前位置:网站首页>2022.8.6 模拟赛
2022.8.6 模拟赛
2022-08-08 10:16:00 【aWty_】
T1 escape
字典序最小,所以考虑贪心。
从小到大枚举每一个位置,再枚举从小到大每一个字母,看这个字母后面有没有,如果有判断它移到这个位置的步数(用树状数组区间加实现),如果可以那么 k − = s t e p k -= step k−=step。
复杂度大概就是 O ( n log n ) O(n \log n) O(nlogn) 的。
T2 ride
注意到有很多部分分,所以可以考虑每一种图怎么骗分。但是由于这个正解也比较简单,所以就直接说正解了,部分分今天写完有空再写吧。
对于点 x x x 令 f x , i f_{x, i} fx,i 表示以这个点为根,到它的第 i i i 颗子树中的海拔下降的路径的条数,那么这个点的贡献就是(子树个数为 k k k):
2 ( ∑ i = 1 k ∑ j = 1 k f x , i f x , j ) = ( ∑ i = 1 k f x , i ) 2 − ∑ i = 1 k f x , i 2 2(\sum_{i = 1}^k\sum_{j = 1}^k f_{x, i}f_{x, j}) = \left( \sum_{i = 1}^k f_{x, i} \right)^2 - \sum_{i = 1}^k f_{x, i}^2 2(i=1∑kj=1∑kfx,ifx,j)=(i=1∑kfx,i)2−i=1∑kfx,i2
然后就树形 d p dp dp,转移就是:
f x = ∑ y ∈ S u n ( x ) ∧ y < x ( f y + 1 ) f_{x} = \sum_{y \in Sun(x) \land y < x}(f_y + 1) fx=y∈Sun(x)∧y<x∑(fy+1)
这里面有一个条件 y < x y < x y<x 所以我们考虑按照海马顺次递增枚举计算贡献,然后就做完了。
T3 road
我们考虑 x → y x \to y x→y 存不存在距离为 d d d 的路径(不一定是简单路径)。
假设我们找到了一条 x → y x \to y x→y 的最短路,长度为 l e n len len,那么我们考虑在这条最短路的某两个点上反复横跳来延长路径长度。
这样一来,我们发现延长的路径长度一定是偶数,所以如果 l e n len len 和 d d d 奇偶性相同,那么就一定存在一条路径从 x → y x \to y x→y 长度为 d d d。
所以我们维护一个 数组 d i s x , y , k dis_{x, y, k} disx,y,k ,其中 k k k 等于 0 0 0 或者 1 1 1。 k = 0 k = 0 k=0 时表示是否存在路径长度为偶数的最短路的长度, k = 1 k = 1 k=1 表示是否存在路径长度为奇数的最短路的长度。那么存在长度为 d d d 的路径当且仅当:
d i s x , y , d m o d 2 ≤ d dis_{x, y, d \mod 2} \leq d disx,y,dmod2≤d
时间复杂度 O ( n 2 ) O(n^2) O(n2)。
T4 tree
n ≤ 10 n \leq 10 n≤10
首先时前 20 p t s 20pts 20pts,就暴力搜索然后 O ( log n ) O(\log n) O(logn) 求距离,令 f n f_n fn 表示匹配方案数,那么时间复杂度时 O ( n f n log n ) O(nf_n\log n) O(nfnlogn)。
菊花图
然后 40 p t s 40pts 40pts 做菊花图,我们发现对于菊花图来说,所有方案的 ∑ i = 1 n 2 d i \sum\limits_{i = 1}^{\frac n2}d_i i=1∑2ndi 都是相同的。因为都是有一个点和最中间的点配对,然后其它点两两配对所以是:
∑ i = 1 n 2 d i = 1 + n − 2 2 × 2 = n − 1 \sum_{i = 1}^{\frac n2} d_i = 1 + \frac{n - 2}{2} \times 2 = n - 1 i=1∑2ndi=1+2n−2×2=n−1
然后答案就应该是 ( n − 1 ) f n (n - 1)f_n (n−1)fn,所以我们考虑怎么求的 f n f_n fn。
一种比较显然的方法就是递推,我们显然可以从 f n − 2 f_{n - 2} fn−2 转移到 f n f_n fn:
f n = ( n − 1 ) f n − 2 f_n = (n - 1)f_{n - 2} fn=(n−1)fn−2
然后就能 O ( n ) O(n) O(n) 算出答案了。
链
边栏推荐
猜你喜欢

How to uniformly handle error exceptions in embedded C programming?

继承关系下构造方法的访问特点:

移动端/嵌入式-CV模型-2018:MobelNets-v2

Feign应用及源码剖析

CentOS MySQL体系管理

Feign application and source code analysis

使用.NET简单实现一个Redis的高性能克隆版(三)

Classification of software testing

【数学知识】—— 质数/约数

People's Congress Jincang database login, view database
随机推荐
使用.NET简单实现一个Redis的高性能克隆版(三)
开源一夏 | 牛plus,多层嵌套动态JSON该如何解析总结
Redis 定长队列的探索和实践
MySQL源码解析之执行计划
oracle中联表相关思考
shell脚本知识记录
典型的NoSQL数据库有哪些呢?
Leetcode 700. 二叉搜索树中的搜索
.net开发中,C# DateTime.Now 取出的时间含有星期解决办法
移动端/嵌入式-CV模型-2017:MobelNets-v1
软考证书含金量
Redis 定长队列的探索和实践
Mobile/Embedded-CV Model-2018: MobileFaceNets
Is it safe to buy stocks with a straight flush?Will the funds be transferred?
使用C# 调用api接口获取法定节假日(百度api)
以技术御风险,护航云原生 | 同创永益 X 博云举办产品联合发布会
vs2019+boost库(boost_1_67_0)安装
功夫再高也怕菜刀,产品经理的那些事
人大金仓数据库登录、查看数据库
idea installation steps