NOIP2017 游记


11.10

  • 学校大部分人都一起订了酒店在考场附近,我直接回家了(感觉离考场挺近)。
  • 下午去了医院……
  • 晚上十点就睡了。

11.11(Day1 )

  • 早上六点四十起床,去到考场八点没到。
  • 与 ytx 和 hz 在二中逛了一圈,校园真心大……
  • 比赛开始, 前面十分钟看完 T1 T2 题面,然后开始想 T1.
    • 咦,一看 T1 数据范围,应该是结论题吧?看看样例,呀好像两个都是 a*2-b,于是匆忙打了个 a*2-b,就去想 T2。
    • 哇,T2 显然直接模拟,估计码农题吧……处理一下,随便 dfs 应该都行,就是不知写不写得出,不如先自己出个小样例测一下 T1 吧。
    • 呀,测了一个样例 5 7,居然不对……
      • 赶紧打个暴力程序打表,暴力思路如下:
        先对 a,b 排个序, a>b,然后开个bool数组记录一下,从 0 开始往后推,直到出现连续 b 个数都可支付,那么后面的都能支付了。
      • 自己弄了几个数据,经观察,似乎答案应该是 a*(b-1)-b,于是把程序改过来了。
    • 开始打 T2。
      • 先用个栈匹配好,再 递归 求一下答案即可,思路很简单,打起来细节多。
      • 小心在草稿纸上写好大概的框架后,开始码。一切都挺顺利,打完程序后才定义变量,编译也很快通过了。
      • 测了一下第一个样例,发现有些错,调了一下,大概就是返回值的时候顺序出了些差错。
      • 测了一下第二个样例,又发现了错,发现了个小错,改了改,两个样例都过了。
    • T3 看着还剩半个小时,大概想了想,估计是个 dp 吧(看那个 k 这么小,大概就是每个点,比 d 多多少,弄个两维 dp),不过看着时间不多了,直接打了个 spfa 求出最短路,剩下 dfs O(n^n) 暴力做了,不知道能有多少分……
  • 晚上回到家,重新打开快一个月没玩的 QQ飞车放松一下,谁知更新用了差不多十分钟,为了早睡,打了几局,到十点就睡了。感到身体略有凉意,晚上睡觉时被子裹得紧紧的,关键时刻感冒……

11.12(Day2 )

  • 和昨天差不多,八点前到了考场, ytx 突然说“在luogu” 上听人说会考网络流,他一晚速成了网络流,考前再背一下模板。我心里一惊,感觉要凉……
  • 比赛开始,依旧先把题目看完,T1 似乎也是直接暴力 dfs,T2 T3 把题目看懂了,还没细想。
  • 于是开始写 T1,大概十分钟就打出了程序,测了一下给的数据,好像没问题,手出也出不了什么,想了想会不会爆 long long 什么的,好像没问题,于是就往后做。
  • T2 看 n 这么小,可能是状态压缩吧,可当时对题目的理解还不够深,没什么思路,直接跳到 T3。
  • T3 这种题,感觉是线段树之类的数据结构,没细想,先打了个暴力模拟。开数组的时候意识到,这样只能过 30 分的点,这也更坚定了我数据结构的想法。看看表,还有一个半小时,那想到十一点吧,看看之后能不能开打正解。然而最终并没有想出来
  • 有点慌了,看回 T2。
    • 还有一个小时,“状压一下已经开发好的点的情况?”我心里想着,可是怎么转移呢……
    • 后来发现题目意思实际上是:在这个图中找出一棵树,那么开发那条边的代价可以弄到起点(离根近的那个点)上,然后使得 sigma(点权*深度) 最小。
    • 想到前几天模拟题好像有道类似的(传送门),只要把修改 delta 那里稍微乘一下子树点权和应该就行了。
    • 想一想复杂度,枚举出一棵树,好像是 O(n^n),然后算这棵树的最小代价和,复杂度 O(n),好像对于 n=8 的点是可以过的,枚举树的时候剪枝一下应该可以吧,不行要满 80 分也不错。
    • 于是开始打,先打不枚举树的方法(针对前 20 分),直接上那道题的代码,好像都能对,在草稿纸上大概写好框架,不一会儿就写好了。
    • 备份好程序,开始加上枚举树的部分,结果这一写就凉了,其间程序出来了好几次,可是都被我自己弄得样例叉掉了。调了好久发现是 dfs 时数据记录有问题,可是只剩十五分钟了,心急如焚的我做了个决定,删掉程序重写(实际上这之前已经重构过一次了)!
    • 然后删掉了(当然还有最初那个 20 分的备份),稍微理清一下思路,开始写,写着写着,然后考试就结束了……
  • 心态崩,出考场与其它人讨论,发现他们都做出了 T2 (至少80分都有),诶……

11.13

  • 今天突然意识到 d2T1 sqrt 自带 log常数,再加上用的是 double ,精度实在不行,掐指一算,似乎少了好多分……不过,既然考完了就考完了吧,现在再怎么想都没什么实质性的作用了,还是先认真捡起学校里的课程吧。

11.14

  • 今天晚上拿到源程序了,测了一下,发现 d1t2 居然没 AC !?在 Luogu 上弄个数据下来,一看,发现漏输了一行,再看看代码,居然有个情况没有输出……也就是说这题可能是 0 分……真的伤心……

11.15

  • 下午又仔细看了看代码,发现又犯了个不应该的错误,导致签到题又没分,具体看下面的程序吧……
    这里写图片描述
    这里写图片描述
  • 这个故事告诉我们程序在数据没读完时没事不要乱 breakreturn 呀……(千万要把数据读完,特别是那种多组数据的)

11.20

  • 今天是学校秋游的日子,也是 NOIP 发成绩的日子。网站上说是早上八点半开始发,而我们秋游七点上车去长隆。车上看着到八点半了,借了旁边同学的手机查分,结果发现显示“还没上传分数”,到了中午,还是如此,甚至说明天才出分。晚上,老师在 QQ 群里发了成绩,有 330!?(330=100(math)+90(complexity)+0(park)+20(treasure)+30(phalanx)+90(cheese) )可能运气好,数据没卡到我出错的那些地方吧。总之,还是得继续学习,还没结束呢!

11.30

  • 出成绩了,分数线295,还是得了一等,也算为学校争光吧。本来估计今年只有十几个一等,现在突然变成21个,老师十分高兴,说明天请我们吃 KFC!明年继续加油。

猜你喜欢

转载自blog.csdn.net/jackypigpig/article/details/78516070