CCF CCSP2023游记

1505 字
8 分钟
CCF CCSP2023游记

CCF CCSP2023游记#

第八届CCSP全国总决赛 2023年10月25-26日 沈阳

#

自从5年前11月11日的NOIP2018原地退役之后,没再打过OI了

上了大学,没有进唐计的机会,转到了计算机之后也已经失去了打ACM的机会

打了三次CSP认证,编程竞赛打了两届蓝桥杯省赛+国赛,一次水赛(以及两次青云杯)

多多少少有些出于功利目的,保研加分,综测加分,课外学分……

总觉得缺了些过去打OI时候的味道

如今保研事宜尘埃落定,有幸获得了CCSP2023参赛机会

应该是自NOIP2018后第一次参加官方的程序设计竞赛

不知能否找回属于OIer的那份热忱

当初报名的时候以为只是一个单纯的算法比赛,仔细看看赛制之后才发现别有洞天

3算法题+2系统题,12小时超长战线,早9点打到晚9点,IOI赛制的NOIP-黑客松

之后得知被选入参赛名单是因为老师觉得大四写系统题会写的好hhh

不过能和校队ACMer一起比赛已经很荣幸了

由于之前搞软工课设,没拿出太多时间准备,只研究了一道历年系统题/性能题,根据性能实时评分还是挺新奇的(虽然青云杯也有)

题目#

T1 装修(decorate)#

M(104)M(\leq10^4) 种素材 a1,a2,,aMa_1,a_2,\cdots,a_M ,这些素材共分为两种:

  • 直接素材:可花费 ci(104)c_i(\leq10^4) 元直接购买
  • 间接素材:只能用其它素材合成(合成无费用),一种素材最多只能作为一种素材的子素材,且保证不会成环。

此外,有两种特殊的素材获取方式:

  • 共有 P(5)P(\leq5) 个邻居,可用 sis_i 换取邻居的 rir_i 素材(单向)(交换无费用)
  • 共有 Q(5)Q(\leq5) 个礼包,礼包价格为 wiw_i,内含 k(M)k(\leq M) 种素材 g1,g2,,gkg_1,g_2,\cdots,g_k

需求为 N(100)(M)N(\leq100)(\leq M) 种素材 b1,b2,,bNb_1,b_2,\cdots,b_N

求满足需求的最小花费

T2 摸球(ball)#

NN 种颜色的球各 aa 个,每种颜色的球编号 1a1\to a

另有 MM 种颜色的球各 bb 个,编号 1b1 \to b

求选取 kk 个不同颜色的球,其中任何编号出现次数都不超过 ss 的方案数(结果mod998244353\bmod 998244353

1N,M,a,b,k103,s1,21 \leq N , M , a , b , k \leq 10^3 ,\\ \\ s\in{1,2}

T3 次元波动平衡(surge)#

一个长为 NN 的数列 (ai)\left(a_i\right),要求选取其中最多 KK 个位置减去一个常数 DD,使得到新的数列 (ai)\left(a_i^{\prime}\right) 的最大子段和最小,求这个最小值,即

min(max1lrNi=lrai)\min \left( \max_{1\leq l\leq r\leq N}\sum_{i=l}^r a^{\prime}_i\right)

1KN5×105,1D109,109ai1091 \leq K \leq N \leq 5\times 10^5 ,\\ \\ \\ 1 \leq D \leq 10^9 ,\\ \\ −10^9 \leq a_i \leq 10^9

(T4是一道编译系统题;T5是系统实现题,非性能题)

(题解部分见文末)

比赛心路历程#

T1第一感觉是贪心,可以直接根据收益大小交换/买礼包

T2感觉正解dp,可以用组合数拿部分分

T3第一眼单调队列,k个修改似乎要线段树

T4编译系统题,果断放弃

T5给好了框架,像是程序填空,似乎是能写的

先打了T1的贪心,拿了60

后来换了几种贪法,骗到70,后无果,故搁置

T2先写了s=1的情况,拿到50

T3没想到什么好方法,暴搜了个10分

反复看榜,一直在200名左右徘徊

又回去搞T1,又交了10多发,依然是70……

打了T2的s=2,a=b的部分分,拿到60

午饭时间看T5,好像能搞

去看T5,题面很长,但是意外地很简单

下午的时间依次拿下T5的第一二三子任务,拿到70

最后两小时封榜,当前总分210,银牌线230

去搞T2的剩下的40分里的10分,一个组合数没想到直接A掉

忽然意识到T1的P和Q都只有5,1<<10只有1024,这不铁二进制枚举嘛

迅速重构A掉T1~~(早干啥去了*1)~~

最后20分钟发现第三题的“最小化最大值”

这不铁二分答案嘛~~(早干啥去了*2)~~

不过还是没想好怎样check,不断向前减D复杂度是O(n2)O\left(n^2\right),最多也就20分的样子

最终定格100+100+10+0+70=280分

后记#

比赛刚结束稍微有些遗憾,感觉摸不到银牌线了。

不过终归是打完了12h的比赛,本科期间能参加一次这样的比赛,和各校大佬们同场竞技,结果如何已经不重要了。

赛后和本校的三位佬简单复盘了一下,发现T5的后30分其实很简单,被题面吓退了~~(早干啥去了*3)~~

上次感受这种氛围还是在高二OI机房里听佬们讨论题,颇为感慨

感觉赛中思路有些混乱,有些本来静下心来很容易想到的东西没有迅速反应到,反倒是比赛最终时刻出现了可观的思路,赛中还是心不够静,而且缺少“一定要把这题A掉”的决心。

第二天上午拿着CNCC参会证白嫖地铁票白嫖景点门票hhh

下午CCSP颁奖典礼,银线刚刚好280,惊险收获银牌(总算是没有重蹈NOIP2018的覆辙)

当然,也再次深刻地感受到了和佬们思维上 和格局上 的差距。

差距归差距,尽全力发挥到最好,战胜过去的自己,已经很满足了。

不虚此行,也算是为OI生涯画上圆满的句号了。

(emmmmm说不定 大四下天梯赛还去凑热闹?

Mathison 编辑 于2023年10月27日

题解#

佬,您还真的翻到这里想看我的题解嘛?

我这么菜就算了叭

请移步我的大神队友 韦神的博客

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

CCF CCSP2023游记
https://mathison2020.github.io/posts/2023-10-27-ccf-ccsp2023游记/
作者
Mathison2020
发布于
2023-10-27
许可协议
CC BY-NC-SA 4.0
相关文章 智能推荐
1
基础算法模版
算法 基础算法模板 雄关漫道真如铁,而今迈步从头越 1 基础算法1.1 归并排序稳定的排序,很好敲(比起快排我更喜欢归并) 应用:求逆序对 void msort(int a[],int l,int r) { if(l>=r) return; int mid=(l+r)>>1; msort(a,l,mid); msort(a,
2
数字组成的奥妙——数位dp
算法 【序】 数位dp就是套模板 ——lwz dalao (数位dp确实可以套模板,但笔者建议还是要理解这个过程,这样才能灵活变化) 【引言】数位dp一直以来是dp家族里比较冷门的一种,但一旦考察不会数位dp靠暴力很难骗到 $O(r-l)$ 以外的分 今天我们就来分析一下数位dp的全过程 【引入】首先我们要清楚数位dp解决的
3
test
test This is % 一个数列最大子段和最小化问题的题面记录。
4
实验九 键盘扫描及数码管显示实验
微机实验 实验九 键盘扫描及数码管显示实验1. 实验内容基础部分 编写程序,实现如下功能:初始时数码管无显示;第一次按下键盘时,在最右侧数码管显示对应的十六进制数字;以后每次按下键盘,则将当前显示的数字全部向左移动一位(最左侧的数字移出数码管),并将刚刚键入的数字显示在数码管的最右侧。 扩展部分 编写程序,将所按键对应的数字(0
5
实验八 数码管显示实验
微机实验 实验八 数码管显示实验1. 实验内容基础部分 用一片 8255 接口芯片的 A 口和 B 口分别连接数码管段码接口(ABCDEFG、Dp)和位码接口(X1~X6)。编写程序实现以下两种显示方式: 使六位数码管从右到左逐位显示移动的数字 0 到 9,即数字 0 从最右端移动到最左端,数字 1 从最右端移动到最左端,….,
随机文章 随机推荐
Profile Image of the Author
Mathison2020
Never really desperate, only the lost of the soul.
公告
欢迎来到 Mathison's Blog,这里记录算法、实验和学习笔记。
分类
标签
站点统计
文章
12
分类
3
标签
6
总字数
12,352
运行时长
0
最后活动
0 天前

目录