CSP-J游记
语文老师告诉我们游记要写时间人物地点
时间:2023年10月21日
地点:华中师范大学
人物:我
审题环节
开始考试了,我们老师告诉我们先审题30分钟
先看时间和内存限制
题目名称 | 时间限制 | 内存限制 |
---|---|---|
小苹果 | 1.0秒 | 512 MiB |
公路 | 1.0秒 | 512 MiB |
一元二次方程 | 1.0秒 | 512 MiB |
旅游巴士 | 1.0秒 | 512 MiB |
还挺正常的,只不过看见一个一元二次方程有点慌
开始看题目
First question
小 Y 的桌子上放着
小苞是小 Y 的好朋友,每天她都会从中拿走一些苹果。
每天在拿的时候,小苞都是从左侧第
小苞想知道,多少天能拿完所有的苹果,而编号为
对于所有测试数据有:
测试点 | 特殊性质 | |
---|---|---|
无 | ||
无 | ||
有 | ||
无 | ||
无 |
特殊性质:小苞第一天就取走编号为
乍一看,哎,这不是纯模拟题吗?
可是
所以说我们必须要用O(logn)或O(n)以下的算法
让我们来看一下有哪些时间复杂度小于O(n)的算法吧
- 二分(logn)
- 部分数论(logn)
无非也就两种,而数论肯定不可能,所以只能是二分
Second question
小苞准备开着车沿着公路自驾。
公路上一共有
公路上每个站点都可以加油,编号为
小苞想从站点
对于所有测试数据保证:
测试点 | 特殊性质 | |
---|---|---|
无 | ||
无 | ||
A | ||
B | ||
无 |
- 特殊性质 A:站点
的油价最低。 - 特殊性质 B:对于所有
, 为 的倍数。
欸,这不纯纯动态规划吗
可是 我不会呀
所以这道题我直接弃掉了,在赛后才发现原来只是一道贪心
Third question
众所周知,对一元二次方程
- 计算
,则:- 若
,则该一元二次方程无实数解。 - 否则
,此时该一元二次方程有两个实数解 。
- 若
例如:
无实数解,因为 。 有两相等实数解 。 有两互异实数解 。
在题面描述中
题目描述
现在给定一个一元二次方程的系数
在本题中输出有理数
-
由有理数的定义,存在唯一的两个整数
和 ,满足 , 且 。 -
若
,则输出{p}
,否则输出{p}/{q}
,其中{n}
代表整数 的值; -
例如:
- 当
时, 和 的值分别为 和 ,则应输出-1/2
; - 当
时, 和 的值分别为 和 ,则应输出0
。
- 当
对于方程的求解,分两种情况讨论:
-
若
,则表明方程无实数解,此时你应当输出NO
; -
否则
,此时方程有两解(可能相等),记其中较大者为 ,则:-
若
为有理数,则按有理数的格式输出 。 -
否则根据上文公式,
可以被唯一表示为 的形式,其中: 为有理数,且 ; 为正整数且 ,且不存在正整数 使 (即 不应是 的倍数);
此时:
- 若
,则按有理数的格式输出 ,并再输出一个加号+
; - 否则跳过这一步输出;
随后:
- 若
,则输出sqrt({r})
; - 否则若
为整数,则输出{q2}*sqrt({r})
; - 否则若
为整数,则输出sqrt({r})/{q3}
; - 否则可以证明存在唯一整数
满足 且 ,此时输出{c}*sqrt({r})/{d}
;
上述表示中
{n}
代表整数{n}
的值,详见样例。如果方程有实数解,则按要求的格式输出两个实数解中的较大者。否则若方程没有实数解,则输出
NO
。 -
对于所有数据有:
测试点编号 | 特殊性质 A | 特殊性质 B | 特殊性质 C | |
---|---|---|---|---|
是 | 是 | 是 | ||
否 | 否 | 否 | ||
是 | 否 | 是 | ||
是 | 否 | 否 | ||
否 | 是 | 是 | ||
否 | 是 | 否 | ||
否 | 否 | 是 | ||
否 | 否 | 否 |
其中:
- 特殊性质 A:保证
; - 特殊性质 B:保证
; - 特殊性质 C:如果方程有解,那么方程的两个解都是整数。
这一看到题面就不想做呀,要不弃了吧
可是我突然看到特殊性质C,如果方程有解,那么方程的两个解都是整数
这不直接套用公式么
所以说只用看这个就行了
- 计算
,则:- 若
,则该一元二次方程无实数解。 - 否则
,此时该一元二次方程有两个实数解 。
- 若
直接拿50分呀
Fourth question
[CSP-J 2023] 旅游巴士
题目描述
小 Z 打算在国庆假期期间搭乘旅游巴士去一处他向往已久的景点旅游。
旅游景点的地图共有
所有道路均只能单向通行。对于每条道路,游客步行通过的用时均为恰好
小 Z 希望乘坐旅游巴士到达景区入口,并沿着自己选择的任意路径走到景区出口,再乘坐旅游巴士离开,这意味着他到达和离开景区的时间都必须是
出发前,小 Z 忽然得知:景区采取了限制客流的方法,对于每条道路均设置了一个
“开放时间”
请帮助小 Z 设计一个旅游方案,使得他乘坐旅游巴士离开景区的时间尽量地早。
【数据范围】
对于所有测试数据有:
测试点编号 | 特殊性质 | |||
---|---|---|---|---|
无 | ||||
无 | ||||
无 |
直接放弃吧,没啥好说的
做题环节
First question
我们通过小学奥数可以知道
每一次取得个数是原来的个数/3+1
而取到最后一个数怎么算呢?
我们可以用当前的个数-1%3,如果余0 也就是整除,那么就可以取到最后一个数
总结
- 每次去掉/3+1个
- 如果-1%3==0 那么当前次可以取到最后一个数
100分
Second question
放弃
0分
Third question
定义一个sum=b*b-4ac
如果sum<0 输出NO
否则输出max(-b+sqrt(sum)/2a,-b-sqrt(sum)/2a)
50分
Fourth question
直接骗分,输出k*2
5分
总结
总分:100+0+50+5=155=一等奖
第一题正常发挥
第二题类型判断错误
第三题侥幸
第四题运气
本文作者:BadBadBad__AK
本文链接:https://www.cnblogs.com/BadBadBad/p/2023CSP-J.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步