ICode9

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

Educational Codeforces Round 127 (Rated for Div. 2) 题解A-E

2022-04-23 01:32:16  阅读:242  来源: 互联网

标签:Educational Rated ma 题解 元素 插入 序列 代价 dp


A. String Building

长度为\(2\)和\(3\)的可以构造出任何长度大于等于\(2\)的,所以将原序列分割成多段字符相同的极大子串,如果存在长度为1的则无解,反之有解。

B. Consecutive Points Segment

枚举第一个元素,然后就可以贪心了,具体就是\(x_{i - 1}\)确定了,那么把\(x_{i}\)搞成\(x_{i - 1} + 1\)会是最优的。

这样每次线性check是否可行就可以了。

C. Dolce Vita

肯定是贪心买便宜的更优,然后由于价钱会上涨,所以购买的顺序应该是零或多次买\(n\)个物品,零或多次买\(n - 1\)个物品,以此类推。

然后就模拟一下,朴素模拟肯定会TLE,把多次购买相同数量物品的操作,合并成一次就可以\(O(n)\)搞了。

D. Insert a Progression

不插入的初始代价遍历一遍就能算出来。

如果原序列中存在两个相邻元素,其中较小的为\(l\),较大的为\(r\),那么\([l, r]\)就可以不花费代价插入这两个元素之间。

假设全局最小元素为\(mi\),全局最大元素为\(ma\),易得现在只剩下\([1, mi)\)和\((ma, x]\)没有插入了,前者其实相当于在序列中插入\(1\),后者相当于在序列中插入\(x\),因为其余元素都可以在插入这两个元素之后不花费代价的插入。

分别线性枚举然后算最小代价增量,最后再加到答案上即可。

E. Preorder

在原树中自底向上DP。

叶子节点\(x\)的方案数\(dp_x = 1\)。

对于非叶子节点\(x\),如果\(f(l_x) = f(r_x)\),则\(dp_x = dp_{l_x} * dp_{r_x}\),否则\(dp_x = 2 * dp_{l_x} * dp_{r_x}\)。

写了个\(O(n \log n)\)的代码就过了。

F. Permutation Counting

TBA。

标签:Educational,Rated,ma,题解,元素,插入,序列,代价,dp
来源: https://www.cnblogs.com/zengzk/p/16181287.html

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

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

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

ICode9版权所有