首先, 正确的题目顺序应该是 2,4,3,1. 没问题, T1 绝对是最难的.
比预估低了近 100 分. 不过好像人均都挂了 100 左右. 这个 T1 就是恶心人, T2 很清真, T3 推一推他的贡献就好了, T4 就是玩一玩. 没错, 难度很 noip.
比赛进程
前 30 分钟看题, 然后开始打题. T1 一看就不想打, 不过毕竟是 T1, 应该不难. 没事, 仔细分析, 打了 1 个小时还没过大样例, 心态崩了. 算了, 上个厕所, T1 先放掉. 先打 2,3,4. 很快, 暴力写完了, 还写了 T3 的一些部分分. 然后此时已经 5 点了, 这时心里就踏实很多了.
然后 T1 慢慢分析, 慢慢打, 终于在 5 点 30 分过了大样例, 且对拍了几个数据. 总算切了. 信心倍增, 很快 T2 是个大水题. 然后已经 6 点 10 分了. 没什么了, 玩了玩 T4, 没玩出来. 估分 100+100+40+20=260 很稳.
赛后民间数据
- 40+95+30+0=165(校内数据)
- 40+95+20+15=170(洛谷数据)
该说的话开头已经说了.
这, 还是挂了很多分.
没事一题一题看
T1: 首先, 年份不超过 1e9, 但是天数可以超过 int 范围. 还是那句话, 不开 ll 见祖宗. 然后, 答案在 1582,10,15~1582,12,31 这个区间的我就炸了. 我为了好算, 把他先暴力算到 1583,1,1, 结果剩下的天数可能会减到负数, 忘记判了. 就这样挂了 60 分.
T2: 来看看我的神奇操作. 首先, 这题又考 usigned long long 和 llu.(1<<64)=0 如果书写的是变量的话, k=64,(1<<k)=1. 没问题.
正片. 为了计算 2^k, 我先预处理了一下. 但是我是这样定义的
- Mi[64];
- Struct yu
- {
- Int q,p;
- }b[100001];
当 k=64 的时候, 我查询 mi[k] 他就查到了 b[0].q(他等于 0);
答案输出 mi[k]-n; 他就是 0-n, 在 llu 意义下就是 2^64-n, 就对了. 所以说, 当且仅当 k==64&&n==0 我才会炸. 也就是本来 k=64 的全炸, 变成了 n=0 才会炸.
T3 打了能过一些部分分的暴力, T4 只写了 n=3.
结果 T3 代码是对的, 但我错误的分析了时间复杂度, 有一档他过不了, 20~30 不等.
T4 打漏了一个等于号. 当 n==3&&a1+a2==a3 时会错.
理想情况的话, T1 的大数据因该随即不到那 70 天, T4 也有可能没有 a1+a2=a3 的情况. 毕竟 a 的范围是 1e9.
怎么说, 整个比赛的进程其实是在掌握之中的, 但是因为小细节挂分仍然很多. 下次比赛, 就是 noip 了. 得找找办法怎么面对挂细节. 毕竟联赛的知识点其实初三就已经学完了. 但是挂分是从小挂到大了. 咋办啊??
可以说是程序严谨性不够, 多点与题目条件结合, 多挖掘隐藏条件及特殊情况.
这个就要在打代码的时候, 警觉一点, 每打一个部分都要想想这个部分的代码在干什么.
还有就是学习如何使用结构体, 正如 597 所说, 代码要模块化.
Noip2020, 加油.
来源: http://www.bubuko.com/infodetail-3692411.html