当前位置:网站首页>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?
- Leetcode 105. 从前序与中序遍历序列构造二叉树
- Timed Task Framework Quartz-(1) Quartz Introduction and Demo Construction
- 2.5W 字详解线程与锁了,面试随便问!!
- Redis 定长队列的探索和实践
- Code implementation of various kinds of attention
- hdu4635 Strongly connected (tarjan calculates strongly connected components + shrink points + ideas)
- 继承关系下构造方法的访问特点:
- 利用图像二维熵实现视频信号丢失检测(Signal Loss Detection)
- Using classification weights, it is easy to solve the problem of data imbalance
猜你喜欢
idea安装步骤
Loadrunner12.0.2安装及中文语言包安装(汉化)
vs2019+boost library (boost_1_67_0) installation
继承关系下构造方法的访问特点:
COMSOL Multiphysics 6.0 software installation package and installation tutorial
CentOS MySQL体系管理
Simple Mixed Operations Calculator
面试突击72:输入URL之后会执行什么流程?
Mobile/Embedded-CV Model-2017: MobelNets-v1
「控制反转」和「依赖倒置」,傻傻分不清楚?
随机推荐
五、业务数据分析
idea安装步骤
Leetcode 617. 合并二叉树
简单混合运算计算器
Dubins曲线学习笔记及相关思考
PCBA电路板为什么需要使用三防漆,有何作用?
Recommend 100 nice English songs
What is intrinsic safety?
FreeSql 将 Saas 租户方案精简到极致[.NET ORM SAAS]
分门别类输入输出,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本数据类型和输入输出EP03
d实验新异常
Vulnhub靶机:GEMINI INC_ 1
使用类似搭积木的低代码开发方式进行 SAP API 开发
正向传播和反向传播
English token preprocessing, used to process English sentences into words
NoSQL的意思就是就是不使用SQL吗?
文档数据库是用来干什么的呢?
关系数据库是怎么确定关系表中的数据的呢?
hdu4635 Strongly connected (tarjan calculates strongly connected components + shrink points + ideas)
业务缓存之体系化设计与开发