『2019/3/8 USACO测试 反思与总结』

<更新提示>

<第一次更新>


<正文>

2019/3/8 USACO测试

这一次是到高中的第一次考试,考得不太好,原因有很多。

先看一下试题安排:

题号 试题分组 考察算法 思维难度 代码难度
1 金组\(T1\) 建图+最短路 ★★★ ★★
2 银组\(T1\) 后缀统计+暴力更新
3 银组\(T2\) 离散化+线段树 ★★ ★★★
4 银组\(T3\) \(topsort\)判环 ★★

很显然\(T1\)\(T3\)是最难的,一道思维难度大,另一道代码难度大。

考试的时候,我对题目的大致难度也已经察觉到了,时间安排是这样的:

  • 读题 \(20min\)
  • 推样例 \(15min\)
  • \(T2\)思考+代码 \(20min\)
  • \(T3\)思考 \(30min\)
  • \(T3\)代码 \(35min\)
  • \(T4\)思考 \(30min\)
  • \(T4\)暴力代码 \(20min\)
  • \(T1\)暴力代码 \(20min\)
  • 检查细节+检查文件 \(20min\)

这样\(3\)个半小时就过去了,我认为大致时间安排是合理的,写出来了两道题,写了两道暴力,但是成绩就是另外一回事了。

\(/\) \(T1\) \(T2\) \(T3\) \(T4\) \(total\)
\(score\) \(10\) \(20\) \(30\) \(100\) \(160\)

其实主要原因还是出在写挂上,算法的思路是完全没有问题的,和正解几乎一模一样。

关于\(T2\),其实主要出的问题是计算平均分是没有用浮点数来比较大小,这样就导致答案误差会很大,改正之后直接\(AC\)了。这其实是一个稍微想一想就能解决的问题,虽然自己学校翻译的题面是没有很明显的说清楚,但是还是应该要想到的。这种错误可以用来吸取教训,但是以后不能再错了。

还有的就是输出格式有一点问题,这个不是我的锅。

关于\(T3\),错误是漏判了一个条件,当同一头牛两次作为第一名时,它的分数也可能是不一样的,这种情况需要特判,不用累加答案,改了之后也\(AC\)了。其他的好像没有什么问题,线段树也自己可以写出来了,就是离散化还要再熟练一点(写了博客:『离散化 discrete』)。

这个\(T4\)倒是挺惊奇的,数据水得不得了,我暴力模拟\(1000\)遍再统计既然直接\(AC\)了。正解应该直接建图(\(i\)号点向\(a_i\)连一条边),然后\(topsort\)判环,输出所有环的大小之和即可,这是应该想到的。

\(T1\)是一道建图题,考场上直接写了暴力模拟,思维难度确实是有点大,考试后还想了很久,看了题解,想这样不可能写出来的题,写一个暴力是好的选择。

那么以后要注意的是:

  • 1.想完一道题之后先尝试检验算法正确性,或找找反例
  • 2.写完一道题之后多出几组数据测一测,死磕出来的难题可以考虑直接写个暴力对拍
  • 3.做完后至少留\(20-30\)分钟的时间检查细节,有没有漏判情况之类的

摘几句机房某\(dalao\)的备注:

写代码时请注意:
1.\(long\ long\)
2.数组大小,边界
3.数据范围
4.精度
5.特判
6.至少做一些部分分
思考提醒:
1.最大值最小(最小值最大),二分
2.尝试贪心,贪心不行尝试\(DP\)
3.优化
4.维护区间用什么数据结构
5.统计方案是否用\(DP\),是否要取模
6.逆向思维


<后记>

posted @ 2019-03-08 20:57  Parsnip  阅读(379)  评论(0编辑  收藏  举报