2026 四川省算法普及活动游记
全是在记流水账。
初赛
2026-3-28。
尝试阅读题目。嗯,选择题十分的正常,哎不对,顺序表是什么东西……等等好像就是数组。为什么选择题最后一道我不会做啊,感觉我的排列组合可以回炉重造了。
继续做。感觉阅读程序第一题和第二题都是不是给人做的搜索,先跳过看看 T3,是一个 ST 表状物,不对这个查询是什么东西。继续阅读尝试看懂代码,容易发现出题人是在使用 ST 表做区间乘积问题,感觉简直太对了,出题人肯定是不会乘法逆元。哇,居然选项还有高级的莫队,这玩意和 ST 表平替是什么鬼。
然后开阅读程序 T1,好吧,非常简单,我应该尝试克服我的递归恐惧症。做完了之后开始看 T2,发现是一个记搜,哎不对你直接从
开完善程序。T1 是什么贪心板子,怎么会这么简单,我是不是走进小低组的考场了。检查一下考场没有问题。T2 这个是二分和 DP 的一个结合体,先尝试阅读,发现一次 DP 就可以做完了啊,看起来 €€£ 四川省委想要证明自己会实数二分和整数二分,你真棒。还是没有多久做完了。T3 简直是一个 dijkstra 板子,€€£ 四川省委,你对于最短路的执念有这么大吗,Dijkstra 是
做完了所有题之后发现还剩下大概 0.5h,使用暴力枚举全排列做出来选择题最后一道题。
感觉可以过初赛吧。
最后分数
复赛
day -1
星期六,学校由于中考放假,故上午将 whk 作业补完之后下午坐上了到 CD 的慢车。
在车上,首先发现 BM66 出了,看看看。虽然也大概忘了具体是啥了。接着就在 B 站上随机翻东西,翻到了一个维多利亚 3 的诡异反清复明视频,然后就这样在车上颓了 4 个多小时。最后想要再看一遍代码的那些板板也没有看。虽然但是实际上没有考板子,所以影响不大。
大概是晚上 7 点才吃上饭的。在吃饭期间,居然与失散多年的同学重聚了,当时是稍微有一点感动的。
然后回到酒店之后考虑手机连线 npy,结果被同学发现了,呜呜呜。虽然他并不认识我 npy,所以我担心个啥\oh。但是被发现之后就不敢在微信上继续聊天了。于是单曲循环东南苦山行制裁同学。
day 0
正赛环节。个人感觉题目质量并不高,果然,省赛就是省赛。我认为复赛最有意义的一点就是去参观了 CD 历史古老的石室中学。
大概说一下打比赛的节奏吧。
- 8:45 到达赛场。
- 8:53 这什么诡异电脑,程序编译 3 秒之后还需要等待 7 秒才能输入,直接吃到【】了。
- 9:00 考试开始!启动!
- 9:03 过 T1。什么诡异题,和洛谷这场比赛的 T1 比较像,但是情况要少很多,所以过得飞快。但是,这个比赛是 OI 赛制的,为什么不给大样例啊!!!生气。
- 9:05 过 T2。注意到最优秀的操作肯定是每一次除去一个
3 的因子,所以直接统计3 的因子个数即可。 - 9:17 过 T3。完全背包板子,不想喷。
- 9:23 过 T4。注意到这里有一个很显然的性质就是这样的。对于每一个
i 连i\to i+k, i\to i-k 的两条边,然后只要两个点联通那么就可以换过去,否则不行。然后我怎么开始写 Tarjan……也是图论学傻了。后面发现了只需要从这个点往后一直用+k 跳就可以轻松的做完了。 - 开 T5。真的服了,大模拟,居然让你凑
24 点。最后写了150 多行的石山代码,然后发现没过。但是我那道题是打了火车头的,估计32 分还是稳的。成功浪费两个小时。 - 最后,就是 T6 了。不好,是我最讨厌的计数 DP!然而我在最后一个小时推出来了
O(nm^3) 的暴力,可以获得高达70 分。估计我的112 行的诡异代码是没有写挂的吧……
目前已经看到了我通过了多少道题目,可以发现是 谁家强力胶。
最后挂飞了,
我的天哪,T5 居然没有 SPJ,
喜提一个四川省 TOP10。
附录
1
DCOI 合影。感谢同学的 P 图。
2
给出六道题简要的题面。
::::info[T1]
有
假设这个人有
- 假如
0<x\leq 100 ,则获得一个奖品1 。 - 假如
100<x\leq 200 ,则获得一个奖品2 。 - 假如
200<x\leq 300 ,则获得一个奖品3 。 - 假如
300<x\leq 400 ,则获得一个奖品4 。 - 假如
400<x\leq 500 ,则获得一个奖品5 。 - 假如
500<x\leq 600 ,则可以从五种奖品中任选一个。
求各种奖品最多发放多少个。
::::info[T2]
你现在得到了一个长度为
对于每一个数,都可以将其
\times 2 或者除以3 。但是,必须要有一个数被除以3 。
求你最多可以进行多少轮变换。
::::info[T3] 你需要在银行里取钱,但是银行的取钱规则如下:
- 可以一次取
1 元。 - 给定一个整数序列
a ,你可以一次取a 的任意一个元素的任意整数次幂元。
假如你想要取出
::::info[T4]
给定一个
一次变换即选择一个任意的
::::info[T5]
给定你 ABCD 字母来表示数字。
例如 (A*B)-C。有多组测试数据。
::::info[T6]
给定一个数列,有一些数的值确定,另一些没有。对于每一个数字,有一个给定的
- 若
b_i = 0 ,那么这个数至少小于一个和它相邻的数。 - 否则,这个数至少大于一个和它相邻的数。
求有多少种可能的序列。 ::::