Claire0918
2024-10-27 17:52:47
初赛,两场都报了。
上午四十多分钟写完了,除了格雷码觉得自己都会了。
相当放松,最后半个小时推了一道高数大题(?
估分 98。
中午和教练吹,说自己只有一题不会,教练突然炸出名句
你会的又不一定拿到分。
实际阅读程序挂一堆,92.5,不稳过。
下午选择很普通,一到阅读程序就不对劲了。
手推哈希??
还好完善程序没挂,场上估分 70 左右,实际 66.5。
出考场怎么全都在骂啊。
前一天晚上十二点才睡,早上六点半被叫醒,开车狂奔一小时返校。困。
冷水洗脸后准时进场。
T1 set 存字符串,计个数用
T2 循环模拟移动,开 bool vis
记录,用时 15min。
T3:???这么难?
想了一会后决定枚举答案的数,先想到
考虑权值。注意到每个数所需的木棍数量集合恰为
确定长度后,对于每一位从小到大枚举,如果一个最小的值填入该位使得剩余的木棍在其右侧的数位中有解则填入。
注意到第一位不能填
差点多测没清空(
T4 更为困难,但想到每年这个位置都放 dp(?
数据范围
考虑设
然后容易发现不用 dp,直接压状态跑 bfs 即可。用 map 存储有解的询问。
具体来说,我们存储三元组
转移考虑枚举每一个不在第
特别地,当
预处理将每一个值的位置用 map 套 vector 存下来。
时间复杂度是
实现过程中不知道 map 要求键具有比较运算符,然后对于三元组随便写了一个,然后一直挂,调不出。
最后十分钟认真写了一个比较运算符,一发过样例,11:56 通过。
11:59 比赛结束。出去一问一堆 300pts,赢麻了。
下午猛然想起 T4 多测没清空,但是位置存储的是 vector 的相对位置,且数据不超过
估分 400pts。大获全胜,中午吃饭的时候非常兴奋。
有点困,第一个进场。
T1 和去年一个风格简单,但是没有想到最简实现,排序后开小根堆依次压入,如果堆顶比当前数小就弹出。用时 5min。
先开了 T3,一眼 dp。设
不难发现上一个也是红时无法算出上一个蓝的位置,又不想打部分分,放弃。
考虑 T2,第一问二分秒了。
第二问想到最小点覆盖。
给定在一条直线上的若干线段,你要在该直线上放置若干个点,使得每条线段中(含端点)至少包含一个点,求最少点数。
一眼 dp,但是懒得想,于是随意胡贪心。大约三点时注意到答案不受线段关系影响。
只需要原先的起点仍然是一条线段的起点,原先的终点仍然是一条线段的终点,那么当前的答案与原来的答案必然相同。
(不保证正确)
考虑每一次出现终点时将其与之前最靠近的起点配对,如果有一条线段中不包含任何其他点,那么该条线段中必须存在一个点,计算一次贡献。反之该线段必然包含加在其他线段上的点,无须计算。
可以证明不存在起点和终点交错使得贡献被卡掉。
大概写到三点半,发现一个点同具有大量起点和重点非常难处理,尝试一会遂放弃贪心。
考虑 dp,先对所有线段按左端点第一关键字,右端点第二关键字升序排序。设
考虑找出在
这似乎是有漏洞的,但考场上没办法了,直接打。使用一棵线段树维护不交的线段,另一棵维护
写到五点多,线段树挂一堆,调到五点四十多过了前三个样例,最大一个样例跑了 1.3s,后面的有一些大样例第一问挂了(?
绝望了啊!
没得选了,直接关代码打 T3 暴力。大脑过于混乱导致除了正解之外直接想了 NP,没有想其他部分分,痛失大众分 65。
六点过了,开 T4,注意到
小 S 希望你帮忙对于每个
c_i 求出,在只收到前c_i 位选手的报名信息时,这个问题的答案是多少。
瞬间脑子炸了,以为
实际上特殊性质 A 保证每一个
最后二十分钟就是乱测 T2,然后随便修改,使我的代码最终能过尽量多样例。
结束了。
估分
结束了。
出考场了。
我对得起一个多星期的半停课吗?
回教室拿作业,和同学一起回家。
我好像睡着了。我什么都说不出。
巴山楚水凄凉地,二十三年弃置身。
怀旧空吟闻笛赋,到乡翻似烂柯人。
沉舟侧畔千帆过,病树前头万木春。
今日听君歌一曲,暂凭杯酒长精神。
晚自习后来到机房看成绩。