【2023年成都七中NOIP联赛】游记

这篇文章记录了一位参赛者在编程竞赛中的经历,详细描述了他在解决涉及线段树、动态规划和其它算法问题时的思考过程,包括错误分析和解决方案。在面对复杂的数据结构和算法题目时,作者体验了从信心满满到遇到困难,再到反思和学习的过程。
摘要由CSDN通过智能技术生成

Day 1:

8:30:

睡懒觉,一觉睡到 8:30,“嘟嘟嘟”的电话声响起,迷迷糊糊睁开眼睛,快点,去成都七中……

没错,我连今天要考试都不知道(其实昨天老师给我发了消息的,只不过在学数学,没看),于是,坐出租车,一个人火速赶去……

路上可真堵,头昏昏的,想睡觉。

10:10

下车,进校门,直登 5 楼(不过是坐电梯),进了机房,人挺多啊,目测 50 人以上,找个靠窗户的位置坐下。

先看题,总共 4 题,T1 是个构造题,T2 看数据范围应该是个 DP,T3 看这题目背景应该是个模板(脑袋仔细回想了一会儿,嗯对,没学过),T4 跟区间有关系,目测是个线段树。

看题+理解题意耗时 20 分钟。

10:30

权衡了一下,先写 T4,其题目大意是:

给出一个序列,然后给出多个询问,每个询问给出多个区间,每一个区间求范围内的最小公倍数,然后输出这些区间答案的最小公倍数。(答案对998244353取模)

看起来很绕,其实比较好理解, 我的初始思路是:直接维护一个线段树,每个节点存的是区间的最小公倍数,嗯对,就这么 easy!

看了看数据范围,诶,线段树貌似可以直接 A 掉这题,嗯对,样例过了,大样例呢?找了半天没找到,等老师过来传一下。

11:00

T4 写完了,准备写 T1,是个构造题,题意如下:

有多个骰子,每面都有一个正整数(在 [0, 10^6 ] 以内),每个骰子的六个面上数字两两不同,然后在给出一个正整数 k,要求同时投出所有骰子,所有骰子朝上面上写有数字的异或和都是 k 的倍数。(要求构造每一个骰子上面的数字)

 看到异或了,可以考虑每一位的贡献,感觉可以 Trie 树来拆位考虑,写了 20 多分钟,后面发现,构造序列之后,验证答案的时间复杂度是 O(6^n),直接就爆掉了,感觉分还不如根据性质分类讨论分多,连忙删掉代码,考虑重构……

发现测试数据集 1 满足 n = 1,有着 10 分,这样直接输出 k 的倍数就行,但是得特判一点儿,k 的 6 倍如果大于 10^6,那么也是不满足的。

然后还有一个数据集满足 k = 2,想了想,2 的二进制位为 10,感觉可以 1 2 的直接输出。

这样好像 30pts 了,看 T2。

11:35

老师回机房了,过去要大样例,回过头来看 T4,测了一下,诶,怎么不对!调试了几分钟,猛然醒悟:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙星尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值