NOIP 2017 Day1 总结

来源:互联网 发布:广西广电网络收费标准 编辑:程序博客网 时间:2024/05/22 14:46

NOIP 2017 Day1 总结

题解程序

前言: 考的很差,编译器版本太low,没适应环境,导致第二题严重失误。

T1

  一开始看到的时候觉得是Noip,应该不会太难,就粗浅的推了一下公式,发现并不好做【水平太低】。于是我就想起了在jz集训的时候做过的一道题目,那道题目是把a和b看成坐标然后推出结论。由于我比较蠢,就立马用暴力print出来看了下,发现似乎有那么点规律。然后东搞搞西搞搞就推出了结论。
大概用时也就30min吧,主要还是因为编译器用得太恶心。但我觉得还是比较慢了。类似的题目遇到的还是太少,不过结论题水分真是高。没有这道题,说不定还要低分点。。


T2


  这道题题目比较长,但是思维难度为零。就是一题用栈来纯模拟,计算出最大循环的时间复杂度即可。
  但是,菜如我,这题居然爆炸了?我觉得很大一部分原因还是因为编译器,实在是太让人捉急了,严重影响了我考试的心情以及码代码的速度!我在爆炸的心情下随意的码完这道题随便试了几个数据,过了样例后就不管它了。即使是这样我也还是用了2.5h才做完前两题。后来知道这题只有70,感觉不应该,但又觉得正常。代码极丑,就不贴出来了【上一题不也没贴】。
但是应该还是会再码一遍的【虽然我觉得意义不大】


T3

  由于考试时间不是很够,我果断打了30分的暴力。至于暴力怎么打,就是根据k=0,这个特点,统计出最短路径的数量就是答案。这很显然就是一个DP就能完成的操作,只需要对于每一个点都记录能够到这个点的最短路径有多少,就可以借此推出递推方程然后直接输出终点的答案就应该是能拿到30分的。
  但是我爆0了。这就很迷,这么简单的暴力我应该不至于打错的,但是就是打错了。
  至于正解的话,我觉得还是比较容易想到的,不过我也不够时间打出来了。正解大概就是一个Dijkstra跑出所有点到起点的最短路的值【从终点开始跑不失为一种优化】,然后进行NK的DP,即为每一个点都有K种可以进行转移的状态。
  差点忘了,还有这样一种极为暴力但又不失美感的算法——记忆化搜索。从终点spfa(理由同上,一种小优化)跑出整幅图所有点的最短路上的点权,然后记忆化搜索f[n][k]表示在某一个点上残量为k的答案。其实相当于DP,只不过记忆化搜索判断零环相对方便,这两种方法本质上是一样的。
  至于搜索方程,易得f[v[i]][kw[i]]f[u[i]][k],按照这样的方式递归起(终)点就说明价值为1,否则为0。
注:上面的“搜索”本来是写的“递推”,但是这其中毫无递推意义,严格来说是由于两边等价而产生的递归搜索


总结

  总的来说,这套题目的思维难度不高,甚至比较低。不如训练时候做的模拟题,但是由于各种原因(比如编译器…)没有发挥出正常实力。个人感觉最坏情况应该是230(100+100+30)的,但是考试结果出乎意料(100+70+0)。下次应该注意调整编译器,这真的很重要,这次真的是吃了大亏了。

原创粉丝点击