预计得分:100+30-100+0
实际得分:70+0+0
但是第二题不知道为什么没有分数
可能是(Linux)的问题或者是文件名?
这套题目非常坑
首先就是难度的问题
虽然从第一题到第三题难度确实是递增的
但是思维难度和实现难度和坑点却非常的奇怪
第一题的确是个一眼题,但是矩阵快速幂不好写
那种找最小正周期的方法挺好想,但是一旦处理不好某些地方就会丢那么几分,而且他的数据范围正好卡着(int)(我怎么知道int具体的数值……),这是最坑的,所以很多同学55-70分
第二题的确是个找规律的题目,但是实现非常简单
如果写个部分分像(O(n!))的搜索或者像我这样的(O(n^2))概率(Dp)
是能拿到30分的,但是一旦找出规律就满分了,(O(1))
而且最要吐槽的是第二题的部分分给的非常不良心
搜索和概率dp会得到一样的分数
这不太好,最起码也要概率dp个60分吧
第三题同样是个一眼题
但是我没做……
啊调第二题了接近两个半到三个小时
啊,(double)强制类型转换和((),*,/,)运算符的优先级永远是无法言语的痛
f[p][j]=(((double)(m-j+1)/(double)(n+m-i+1))*(double)f[p^1][j-1])+(((double)(n-i+j+1)/(double)(n+m-i+1))*(double)f[p^1][j]);
所以我代码就长成这熊样了,数数几个括号几个(double)
但是有些算法并不是很会,而且代码偏长,所以不太好写
第一题还有一个比较神奇的地方是
如果你从数列中找的是以1,1开始的循环节
那没有问题
如果找的是最小循环节
那可能处理就要麻烦一点
例如 这个函数的函数值组成的数列可能是(1,1,4,1cdots,4,1,1,cdots)
然后那么最小循环节中就没有1,1这两个元素
所以如果处理不好这个问题(就像我)会WA一个点得到95分
代码就不放了