ICode9

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

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

2021-06-05 02:01:35  阅读:294  来源: 互联网

标签:Educational Rated 题解 le Playoff 胜者 字串 节点 模拟


A. Fair Playoff

模拟。

B. Array Reodering

贪心。

对于\(a_i\),统计\(1 \le j \le n, j \ne i\)且\(\gcd(a_i, 2a_j)\)的个数,作为\(b_i\)。

\(b_i\)越大,越往前放。

C. Unstable String

对于偶数下表的字符,若其不为?,则将其翻转一下,即0变为11变为0。现在,若一个子串同时包含01,则该字串不合法。

现在可以用双指针\(O(n)\)的到答案:不断让右端点加一,若加一后字串不合法,则不断让左端点加一,直至字串合法。

D. Playoff Tournament

观察到比赛间是二叉树的结构,且树高为\(k\)。那么如果可以把树建出来,就可以\(O(k)\)更新,\(O(1)\)查询结果。

然后建树就是借助队列自底向上建,这个模拟一下就可以了。

每一个节点,也就是一场比赛,若结果已知,那么可能的胜者数量就已知,只是看是左儿子还是右儿子的胜者。否则其可能的胜者数量就是两个子节点可能的胜者数量之和。

更新的话就是找到对应的节点,然后不断向上跳到根,沿途更新答案。

E. Gold Transfer

操作1就模拟一下就好了。

操作2的话,因为要花费最小,所以相当于每次找到离根最近且还有剩余的节点,在那个节点买金子,重复直到没有金子可买或者已经完成了购买任务。

注意到每次是优先买便宜的,所以如果一个节点一个节点买,购买的次数也不会太多。

现在只需要快速找到离根最近且还有剩余的节点,借助倍增(类似倍增求LCA)的思想可以\(O(\log n)\)的找到。

现在模拟一下就完事了。

标签:Educational,Rated,题解,le,Playoff,胜者,字串,节点,模拟
来源: https://www.cnblogs.com/zengzk/p/14851850.html

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

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

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

ICode9版权所有