Codeforces/Round939Div2
本场摘要
这一场无功无过,rank 为 411,rating 加了 55,来到了 1889。比赛时通过了 ABCD 四个题目。
感觉这一场题目难度在中等偏上,思路上虽然非常清晰直接,但是实现难度比一般场次大。E、F 题的 idea 较为新颖,作为拓展思路的场次还是很不错的。出题老哥是个华南师范大学附属中学的初三学生这么小就是红名了,反观我这个老古董却越来越菜了。。。,不得不说出题水平相当可以。
这一场的 D 题很早就有了 idea,但是写的时候非常坎坷,先是 DP 写错调半天,然后再是递归写挂。。。可见退役久了水平下降得十分明显——放在本科的时候应该能 1h 内写完前四个题的。。。不过这也是应该的,毕竟很久没有系统训练过了,以后想上分还是得多多补题。天天空想着上个红名,不脚踏实地是不可能的。
这两天几乎听完了肖斯塔科维奇的弦乐四重奏,然后又在B站上看了很多他的故事,发现天才如他其实也是位卷王,在圣彼得堡音乐学院读书的时候几乎门门功课都卷到了 5 分。既然我只是一个普通人,要做成事情需要更加努力才是,继续加油吧。
传送门:
题目
C.
题目大意:
给出一个大小为 n∗nn * nn∗ ...
Codeforces/Round936Div2
本场摘要
毕业前抱着玩玩的心态打了若干场正式赛,没有训练也没有补题,结果分掉得很严重,都一路俯冲到蓝名去了。。。
后面就没太敢报正式赛了,倒是陪老同学 vp 几场找了找手感。
这一场的Div2是今年的第一场正式赛,最后的 rank 为 第 172 名,rating 从 1733 涨到了 1873,比赛时通过了 ABCDE 五个题目。
下来补完 F 后,综合来看,这场感觉算是中等偏下的难度,也没有让人眼前一亮的题目。期待后续遇到这种偏简单的场次能 AK 一回吧。
传送门:
题目
C.
题目大意:
给定一颗大小为 n 的树,去除其中刚好 k 条边,要使得每个联通块的大小都要至少为 x 个点,求 x 的最大值是多少。
题解:
十分典的一个贪心题目,先二分 x 的值,然后进行深度优先搜索。一旦当前的子树大小大于了 x,则切掉这个子树与其父亲相连的边,并更新其父节点的大小。如果最后能切掉大约等于 k 条边,则说明当前 x 是可行的。
这个策略可以用反证法证明其正确性。如果遇到这个子树大小大于 x 不切,并且存在另一种合乎要求的切法的话,我们可以在这个新切法的基础上,切掉当前子树与其父相连的边 ...
VScode配置心得
写在前面
感觉现在很多非计算机专业的朋友也有很多写代码的需求,最近几个月陆续有些朋友问了我一些有关于C++开发环境配置、代码编辑器选择相关的问题。
由于网上已有很多教程,所以在这里主要还是分享一些我在配置 C++ 开发环境过程中的经验,并对各个网络教程做一个汇总。
从0到1
不论你的用途是什么,代码编辑器首选 vscode。
理由很简单:1、免费。2、对于非计算机行业从业者来说,能涵盖所有需求。
windows配置vscode C++ 开发环境的教程
mac配置vscode C++ 开发环境的教程
windows需要用户自己下载 gcc/g++ 编译器,按照教程下载 MinGW 即可;macOS 自带了 clang 编译器,配置过程稍简单一些。
主题和字体
FiraCode 是一个非常好看的字体,并且可以支持连字符(当然不喜欢用连字符也禁掉)
FiraCode配置教程
可以在VScode的扩展中下载各式各样的主题,笔者使用的是 Dracula Official
扩展
在上面的 vscode 配置教程中已经安装了 C++ 开发环境所必须的的插件了。其他的可以自己在使用过程中按需安 ...
Codeforces/Round922Div2
本场摘要
D 题没有涉及到什么前置知识,蛮适合作为某些笔试中的压轴题的,如果对滑动窗口类型的 DP 的了解变得生疏的话,这道题目还是有一定难度的。
E,F,G 难度相差不大,不过要在两小时内全部通过还是比较困难,自己做的时候wa了若干次——还是再接再厉吧。
传送门:
题目
代码仓库
C.
题目大意:
输入三个数字 A,B,X。求如下式子:
Min{∣(A⊕x)−(B⊕x)∣},0⩽x⩽X\operatorname{Min}\{|(A \oplus x)-(B \oplus x)|\}, 0 \leqslant x \leqslant X
Min{∣(A⊕x)−(B⊕x)∣},0⩽x⩽X
题解:
不妨设A>BA>BA>B, 且将 A 和 B 都用二进制表示。
由于 A 和 B 都要和 X 进行异或操作,如果某一个位上 A 和 B 都为 1 或者 0 ,那么将 x 的对应位置为 0 即可。这样一来,异或操作的作用,可以理解成将一个数字中某个位置上的 1,移动到另一个数字中的对应位置中去。
所以期望最小的方案就是,A 的最高的 1 不动,然后尽可能地通过异或 x 将 ...
Codeforces/Round921Div2
本场摘要
传送门:
题目
题解代码
这场总体难度较小,没有很难的题目。但是会在刁钻的地方恶心人,也许是出题的印度老哥故意设计的。。。总之题目出得非常奇怪,不过作为复健场来说也还算有练习的价值。
总体做下来体验有点差——特别是最后的F题。幸好只是拿来训练,不然参赛的话可能会一直WA。
D. Good Trip
题目大意:
在nnn个元素中等可能地选取两个元素,选完后放回,等可能地选mmm轮。每对元素可能是朋友或不是朋友,如果是朋友则对应的“友好值”为一个整数。每当一对元素被选中后,如果这对元素是“朋友”,则会将该友好值加到sumsumsum中,并且其“友好值”会+1+1+1。问最终sumsumsum期望多大。
题解:
将sumsumsum分成两部分,即「基础部分」和「增加的部分」。
「基础部分」是很显然的:
k∗∑i=1mfiCn2k * \frac{\sum_{i=1}^m f_i}{C_n^2}
k∗Cn2∑i=1mfi
「增加部分」稍微有些棘手。可以注意到,如果只考虑增加值的话,每对朋友都是等价的,所以只要算出一对朋友的贡献,最后乘以朋友对数就行了。
而在增加值中,一对 ...
Goodbye snewptl, hello pinkyhead.
最近的生活
再过两天就是2024年了,距离我的22岁生日也过去了三个月。
现在是晚上八点三刻,公司里现在就我一个人,除了耳机里的Thom Yorke,陪伴我的就只有我的打字声。
毕业之后的这段时间里,我过上了点外卖不用看价格的滋润生活。每天正常上班下班,工作的压力也还算可以接受,回家后依然有时间继续朝着自己认准的方向做些事情。前段时间,我买了一个声卡,并在公司发的Mac上装上了一大堆软件,期待能继续学起电吉他;每隔几天,我就会在离家不远的“沙龙”去清一次痘,希望能有朝一日解决我的脸部皮肤问题;今天下午,我去报了一个声乐的班,老师说我声音条件还蛮不错,经过十几节课后一定能唱出Radiohead的曲子;后天,我盘算着去买一把宣尧推荐的yamaha LL16,一是因为我发现我现在最喜欢的都是原声吉他的曲子,二来打算尝试一下弹唱…
Where is my mind?
一切似乎都走在正轨上,除了有些孤独之外,似乎没什么事情是值得我难过的。
可是,我最近的心里负担却异常地大,因为我遇到了人生中第一个难以逾越的坎————至少目前为止,我对此有些手足无措,看不到任何可以将其跨越的迹象。
这段时间里 ...
毕业前的最后一场codeforces
毕业之前心血来潮开了一场vp,就当作是追忆青春了吧(大雾
平时比较懒,打了这么多cf都没写过题解,还是蛮可惜的,如果再多写点,说不定还能给还在校队的学弟们参考参考,也不知道以后是否还会再登录cf,也许这篇博客就是休止符?希望我某天还是再上号打打吧,毕竟当年立下的上红名的flag还没实现呢…
从2022年12月杭州站结束后退役算起,已经过了快一年了,会看过去的题解博客,颇有一番悲凉的感觉。自己就像是推石头的西西弗斯,做着很多毫无意义的事情————虽然自己乐在其中。
“是谁来自山河湖海,却囿于昼夜厨房与爱”。不论自己有多么多不切实际的幻想,但总是要面对现实的呀。
C. Ranom Numbers
只需要考虑每个字母的最左和最右出现的位置即可。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#include <iostream>#include <vector>#include <m ...
ICPC昆明站游记
一些流水账
4.15
因为疫情的缘故,西一楼要封楼且断电,机房不让用了。还好可宝在仲英楼借了个教室,比赛的场地总算有了着落。晚上搬东西的时候,下着淅淅沥沥的小雨,梧桐东道上几乎没什么人,还算是挺有意境的吧。这时的心情蛮复杂的,除了有些激动和紧张,其实更多的是这个赛季结束后对未来的迷茫。
4.16
我们队打了最后一场训练赛,选的是ICPC上海#2019。结果还行,做出来五个题(在正式赛时这个成绩能拿个银吧,大概?)。记得D题是个树剖,我写了个250行的代码然后过了,特别高兴。不过作为签到题的K题我们三个人却始终没做出来,还挺搞的。
晚上打完昆明站的热身赛,就早早回去睡觉了,可是因为感冒喉咙不舒服,咋都睡不着
4.17
早上八点半我就到了比赛的教室,调整好设备后就坐在椅子上让自己静下来,看了一下昆明的队伍数量,整整700多支正式参赛队伍,拿牌的难度相较于之前的场次大了很多。这时候忽然发现自己特别的紧张。史耀睿来了之后,也说昨晚上他因为紧张没睡好。的确,作为这个赛季的最后一搏,这场比赛对我们而言实在是太重要了。
11点,比赛开始。我一上来就开了B,我感觉不太难,想好DP式子和判断涂满 ...
XJTU-Diamond-Sea昆明站前集训-第七周
The 2021 ICPC Asia Nanjing Regional Contest
E. Paimon Segment Tree
tyy很快意识到额外维护一个前缀和即可求解,则现在只需要处理一个平方和即可。
但是看到需要维护平方和,naive的我以为线段树无法解决,再加上看到5e4的数据量,所以训练的时候想了个分块的做法。
可惜需要维护的变量太多,导致一直没有调出来,下来补题却最后一直在第23个点TLE
无奈查看题解,居然真的是线段树…其实使用矩阵乘法来维护,继而就可利用懒标记来优化了…
注意矩阵乘法的常数极大,又观察得知,矩阵中仅有6个参数是变量,所以可以极大的优化乘法运算的复杂度。
最后在cf上面使用64位测评机,刚好卡过去…
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 ...
XJTU#Diamond_Sea昆明站前集训_第五周
Diamond_Sea#Day5
E. Company
容易想到使用st表来维护区间的lca(注意实现的过程中,位运算的优先级)
我们发现如果是改变一个点就能使得lca的深度变大的话,那这个点去掉之后,剩余点的lca必须是原lca的后代节点废话
相当于,剩下的点在原lca的最多两个不同子节点的子树中,且其中有一个子树只含有一个在当前区间中的点,我们要删除的就是这个点。
这里采用了分治的方法,具体可参见实现过程
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132#in ...