ICode9

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

Codeforces Round #806 (Div. 4)总结

2022-07-13 12:32:28  阅读:145  来源: 互联网

标签:map string 时过 30 Codeforces 然后 钥匙 Div 806


比赛地址

比赛情况

排名:?? / 27864
AC:7 / 7

题目分析

A

语法题

B

看一下出现多少字母,加上字符长度就是答案

C

因为是倒推,所以 D 就加,U 就减,最后输出模10的余数即可

D

string+map

先把所有string放入一个map里

然后对于每一个string枚举分界点,判断是否存在两个字串都在map中

E

每个位置只会与3个位置有关,于是把每个点本身、旋转90,180,270的格子都找出来,看一下最少要变多少个

答案记得除4

F

题目要求 \(a_i<i<a_j<j\)

先把不满足 \(a_i<i\) 的数筛走

然后从前往后遍历,满足 \(i<j\)

现在约束条件只剩下 \(i<a_j\),此时只需要看一下有多少个 \(a_i\) 满足 \(a_i<i\) 且 \(i<a_j-1\),这一步可以用前缀和预处理

G

有个很明显的性质,如果某个地方使用了坏钥匙,后面必然全部使用坏钥匙

而 \(a_i\leqslant 10^9\),\(2^{30}=1073741824>10^9\),也就是说坏钥匙用最多30把后后面的数就全变成0了

于是我们可以枚举哪个地方开始用坏钥匙,然后向后统计30个

时间复杂度 \(O(n\log n)\) 左右

赛后总结

手速还是慢了

A还算顺利,看完后马上打,调了一下,2min时过

B理解题目时花了点时间,打得也挺快,7min时过

C也不错,较为顺利,12min时过

D就出大问题了

也开始想着用string写,写到一半,觉得string用得不熟,想着8位不用用哈希来写,然后调不出,于是又改回string,然后string取字串的函数忘了,被迫上网查,然后好不容易打了个string+map才在31min时过

E看完题后感觉很套路,打了段代码发现过不了样例,发现理解成翻转而不是旋转,纸上推了推再改了改44min时过了

F看完题后一开始觉得要用单调队列,打完后过不了样例,仔细想了一下,发现那个前缀和就行,59min时过

G一开始觉得要不断判断 \(k\) 和所有数减去的关系,然后死活调不出,然后发现某个地方用坏钥匙后最多30次就全变成0,然后打了个暴力,然后90min是并 过

标签:map,string,时过,30,Codeforces,然后,钥匙,Div,806
来源: https://www.cnblogs.com/zhangtingxi/p/16473092.html

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

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

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

ICode9版权所有