CSP2019.3考试记录

2019 年 3 月 29 日 星期五
/ , , , ,

CSP2019.3考试记录

更新了挂掉的链接 qwq,然后来耍耍存在感 QAQ

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

考试题目

PDF文档

Task1Task 1

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

Task2Task2

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

Task3Task 3

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

更新分割线2019.3.30(2019.3.30)


Task4Task4

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

Task5Task5

  • 题意:同上\Uparrow\Uparrow\Uparrow\Uparrow
  • 分析:因为我在学校要讲这题,所以我就详细一点,就当做是备课吧。
    1. 30\leq30
      • 当然是Floyd/Dijkstra+堆优化Floyd/Dijkstra+堆优化啦,太简单了(太懒了)我就不写了,这里地方太小我写不下。
      • 到底是FloydFloyd还是Dijkstra+堆优化Dijkstra+堆优化自己权衡。我觉得FloydFloyd好,毕竟这题是多源最短路,而且代码打得少。有人想用SPFASPFA,毕竟有单源最短路平均O(m)O(m)的优秀复杂度,但是在不被卡的情况下3030%的数据依然无法满足要求。这30分的极限数据下FloydFloyd也会爆,所以上面我写:30\leq 30,但是这是三种中最优的,可以手动算下。
    2. 100分
      • 复杂度:O(k(n+m)logm)O(k(n+m)\log m)
      • 可以发现普通的DijkstraDijkstra的复杂度是O(n2(n+m)logm)O(n^2(n+m)\log m),但是题目中有一个条件是:只需要输出前kk个据点距离的和,所以我们为什么不利用一下呢?

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...