其他分享
首页 > 其他分享> > CF VP&Contest

CF VP&Contest

作者:互联网

总结中的标记【更新】

以上和题目本身难度无关,不同颜色只是只程度不同

CF Round 813 div.2

时间:

2022.8.13 ·10:30~11:45

结果

AC:A,B,C,D

Socre:2624

rk:3911

心路历程

是我第一次的真正\(participate\)这个一场\(CF\)的比赛。某大奆学长陪本蒟蒻一起来打,不过说只取切F。

看A切A,正常操作。

B想了一下,口胡了个错误的结论。然后又稍微想了想,等等,互质的\(lca(a,b)=a\times b\),那把两个数字换个位置不就是解决了么?搞定,不过还吃了一发罚时。

C可能还没有B难想,反正随便画了画,找到最后肯定是一个直线配一个非递减的序列,不就搞定了么?

前三题挺顺的,不到40分钟切完了。

D开始需要思考了,想了想,学长这时候提示了一下和最小值的两倍和最大值有关系,想到了一个做法,结果保安来机房赶人走了,没办法,结束了

题目分析

A

这没啥好说的吧,再写就有点浪费笔墨了

B

最重要的结论再上面写了,因为相邻的两个数互质,交换位置就好了~

C\(\color{Green}\sharp\)

还不错的一个小思维,我们不难发现,最后的结果一定大概是这样的形状:

pic3.png

就是最后的非递减序列的数一定不能在前面出现过(不然会变成0),稍微处理一下就ok了

D\(\color{Orange}\sharp\)

也是需要思维的题目,主要的想法是把直径的结果化简成为:

\[\max_{1\le i \le n-1}d(i,i+1)=\min(\max_{1\le i \le n-1}a(i,i+1),2\times \min(a_1 \dots a_n)) \]

之后用二分就可以解决,分别讨论把\(a_i < \dfrac{mid}{2}\)的数字变过之后,剩余\(k\)的情况即可

E\(\color{Green}\natural\color{Green}\sharp\)

需要进行一些些数学的推理,当且仅当\(lcm(i,j,k)=k||(lcm(i,j,k)=2k,i+j>k)\)的时候,这个序列是不好的,这时候就可以进行遍历来寻找不合法的位置。为了有更优秀的时间复杂度,还得用线段树进行一个优化,但是注意不是直接区间加减就可以了,是要进行化简之后才可以使用线段树。

CF Round 810 div.2 \({\color{SkyBlue}V}{\color{SkyBlue}P}\)

时间:

2022.8.4 18:40~20:40

结果

AC:A,B,C

Score:2128

VPrk:2040

心路历程

暑假到外面来集训和旁边同学晚上6点多打的比赛。打了一天的题挺累了,晚上和旁边的童鞋一起打一下\(CF\)休息一下。

\(A\)比较简单,一个性质题,连构造多算不上。没想到第一次提交没检查,犯了一个愚蠢的错误,被罚了一次时。还好第二次顺利地过了,用了差不多\(10min\) 。(题解发现出奇的简单)

\(B\)也不是很难,就是在\(m\)是奇数的时候,有两种删除的方法——奇点和连续的偶点,还是比较巧妙的。不过\(20min\)也搞定了

\(C\)就稍微有点奇怪了,其实思路很好想,就是每次至少染2列或者行,但是怎么样能保证一定能够染满?我开始是从奇偶性入手的,写了\(100+\)代码,很失败。后来想到了用一个\(candelete\)参数,编辑能够删除多少个,然后配合一个排序,\(O(tk\log k)\) ,题目说了\(\sum{k}\le10^5\)所以是可以过的。不过这题还是有点艰难,到\(1h28min\)的时候才过。

\(D\)第一反应就是线段树维护,结果写了一半发现它增加减少是一个三角形的形状的,不能直接区间加。后来看时间不够了,也就走了,晚上还得回去休息,今天还是挺累的。

题目思考

A

想想就知道的体,只不过我还\(WA\)了一次

B

给了一个蓝的思维,但是其实绿的也差不多,稍微要一点思考

C\({\color{Green} \sharp}\)

这题还是被困住了一会,主要是要以一个简单的方式来实现,更多还是思考方面的提升,尤其是想到\(candelete\) 这个变量

D\({\color{Orange} \sharp}\)

没有什么算法的,但是“是真的难想”——我旁别的同学的话。确实,到时候订正之后再来回顾。

2022.8.6早上,订正出来了,借助了\(editorial\)的帮助,这道题主要是运用了两个差分数组,方便每一次进行下雨的更改。但是同时进行了一个类似懒标记的操作,就不必每一次进行更改,直接在一个vector后面增加就可以了

所以给的评价是思维有点难,算法也需要一些基础。

E\({\color{Red} \sharp}\)

2022.8.6晚上,之后看了题解才发现非常奇妙的一道题目,不知道是我套路见少了还是什么,但是这个思路确实很妙也很奇怪,用\(cnt_{i_1i_2i_3}\)的第\(j\)位来标记\(i_1=a_j,i_2=b_j,i_3=c_j\)是否成立,之后将\(a\oplus b+a\oplus c>b\oplus c\)转化成了\(cnt_{011}+cnt_{100}>0\)。最后用一个数位dp来解决,反正这个思路在我看来是非常新奇的

算法难度其实就是一个dp,但也有一点难度,可以说是不看\(editorial\)真的想不到

总结

整体来说前面题目时间控制有所加强,但是如何快速想到简洁的做法还有待加强。还有检查!

CF Round 807 div.2\({\color{SkyBlue}V}{\color{SkyBlue}P}\)

结果

AC:A,B,C,D

Score:3118

rk:T-1380

赛中心路历程

本来是昨天晚上直接打\(contest\)的,但是回家太晚了错过了,于是大清早爬起来打。清晨还是挺有精神的。

A简单,两分钟写完了,但是\(Submit\)出了问题,导致拖了点时间,不过也没啥影响了。

B开始结论蒙对了,但是交上去\(WA\),想了大概10min才意识到是没有开\(long long\)的问题,大意了!本身是一题多解,但是\(longlong\)必须开

C稍微想了一会,发现规律是一定要回溯到原来的单词。再看到\(q_{max}=40\)就意识到可以暴力的去往回跳,甚至不用二分找现在的位置在哪个区间内。

C写完要吃早餐了,边吃早餐边看的D。

D其实开始比较懵,但突然发现可以有延伸的规律,比如\(00010\)可以让\(1\)一直延伸到第二位变成\(01110\)的样子。这时候又发现这过程中的两个个不变量\(tot_{'01'},tot_{'10'}\),这样就可以了,若两次的数量不符合就不能成功,反之可以简单说明将一个\(01\)或\(10\)移动刚好需要一个操作,统计一下就好了。

结果WA了,开头结尾是不能变的!题目中都明说了QAQ,居然忘记特判了。偷懒的后果……

之后其实看了E,很快发现可以和2的平方和求最高位,但是怎么处理变化没搞懂。赛后才意识到是线段树,不过本身也没时间了,所以就算当时想到估计也做不太出来。

题目思考

A

非常基础,想一想就明白了

B

确实思考量和码量不大,稍微暴力的方法估计都能过

C

整体还是偏简单。代码方面就是要标记先后的顺序,思考就是要回溯一下。需要花时间的,而且还有一些细节的处理

D\({\color{Green} \sharp}\)

代码比较水,但是稍微要一点思考,想到0110不变要花时间

E\({\color{Green} \natural}\)

没打太多CF后面的几题,不知道有没有给高了,但是这个要运用到线段树或者\(bitset\)还是浅给了个橙色

总结

还是经验不多,写不了太详细。但是感觉早上打比较有劲。

注意一些细节如\(long long\),还有不要偷懒,该特判还是特判。

标签:SkyBlue,题目,Contest,color,CF,VP,Green,sharp
来源: https://www.cnblogs.com/Jryno1-blog/p/16597472.html