CSP2019.3考试记录
浏览 927 | 评论 0 | 字数 1553
Snowflake_Pink
2019年03月29日
  • 更新了挂掉的链接 qwq,然后来耍耍存在感 QAQ

    • 最近被老师拉去考了一个$CSP$,什么$CCF$职业认证考试.....
    • 考点在$S$大,用那里的电脑连接$CCF$的华为云服务器,在那里做题,真是太傻逼了
    • 代码要钱,我太穷了,所以没有任何$Code$。

    考试题目

    PDF文档

    $Task 1$

    • 题意:有$n$个整数,按照升序或者降序排列,请你输出这些数的最小值、中位数、最大值。如果中位数存在分数,四舍五入到第$1$位输出。
    • 分析:没有任何分析,一道模拟。
    • $Code$:被$CCF$吃了

    $Task2$

    • 题意:有$n$个数学算式,只会出现加(+)、减(-)、乘($\times$)、除($\div$)和个位数,乘号使用小写字母x代替,除号使用/代替。计算这个式子的值是否等于$24$,若等于,输出Yes;否则输出No
    • 分析:我是用一种递归的思想吧。。把乘号或者除号统一直接处理成一个数,然后进行加减计算就可以了。我这道题好像因为乘号问题只拿了$30$分,难道我打成了*
    • $Code$:被$CCF$吃了

    $Task 3$

    • 题意:一个非常长的模拟题,堪比猪国杀。
    • 分析:不想看啊$qwq$,我一辈子不会做这种题的。

    更新分割线$(2019.3.30)$


    $Task4$

    • 题意:自己看题目吧$QAQ$
    • 分析:这个直接while一直死循环,依次判断每个进程是否可以结束任务,如果可以,就结束两个进程的任务,并让它们进行下一个任务,循环之中在判断一下死循环是否跳出。我这道题应该是在输入和判断死循环方面出现问题了,如果输入每行多个空格,程序就错,因为我用的是getchar $qwq$。判断死循环我用的比较复杂方法,其实这要判断一次循环过后有没有完成任务就可以了,一个任务也没完成就是死循环。
    • $Code$:强迫症的我决定打上

    $Task5$

    • 题意:同上$\Uparrow\Uparrow\Uparrow\Uparrow$
    • 分析:因为我在学校要讲这题,所以我就详细一点,就当做是备课吧。

      1. $\leq30$分

        • 当然是$Floyd/Dijkstra+堆优化$啦,太简单了(太懒了)我就不写了,这里地方太小我写不下。
        • 到底是$Floyd$还是$Dijkstra+堆优化$自己权衡。我觉得$Floyd$好,毕竟这题是多源最短路,而且代码打得少。有人想用$SPFA$,毕竟有单源最短路平均$O(m)$的优秀复杂度,但是在不被卡的情况下$30$%的数据依然无法满足要求。这30分的极限数据下$Floyd$也会爆,所以上面我写:$\leq 30$,但是这是三种中最优的,可以手动算下。
      2. 100分

        • 复杂度:$O(k(n+m)\log m)$
        • 可以发现普通的$Dijkstra$的复杂度是$O(n^2(n+m)\log m)$,但是题目中有一个条件是:只需要输出前$k$个据点距离的和,所以我们为什么不利用一下呢?
    本文作者:Snowflake_Pink
    本文链接:https://snowflake.pink/archives/79/
    最后修改时间:2020-04-14 09:01:22
    本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
    评论
    评论会由可爱的 AI 来审核鸭~
    textsms
    支持 Markdown 语法
    email
    link
    评论列表
    暂无评论