Streaming#3NOIp模拟赛Day1题解
A. 数三角形
题意:给出平面上的 $n$ 个点,问能组成的三角形个数。
思路:没什么思路, $n$ 非常小,所以枚举三个顶点并暴力判断是否贡献就行了。
注意:似乎要注意掉精的问题(?)
代码:
1 |
|
B. 4和7
题意:给出一条线,从 $0$ 开始,每一次可以向正方向走 $4$ 个单位或 $7$ 个单位,走到某一些指定单位上有一定的收益,可以在任意位置停下来,问最大的收益。
思路:表示做过一个类似的题目,不过是改成了在图上跑,然后……
YSJ:这很显然是个思博DP。
没错, $\text{DP}$ 部分确实是比较简单,显然有以下方程:
这样做是 $O(m)$ 的做法,但 $m$ 较大后便不可避免的会超时,所以我们考虑将与 $m$ 有关的状态变成与 $n$ 有关。
我们将有收益的位置排序后设 $f _ i$ 表示进行到第 $i$ 个有收益的位置是的最大收益。
然后考虑 $4$ 和 $7$ 的奇怪限制,由于我们已经做过了 小凯的疑惑 所以我们知道最大不能表示的数为 $17$ ,然后我们只要记录距离为 $17$ 之前的点的最大值就可以转移过来了。
转移的时候暴力处理一下 $17$ 以内的数就行了。
然后我用的是相当暴力的平衡树,所以常数大到天上去了。
注意:输入的位置可能有相同的,要合并一下。
代码:
1 |
|
C. 反射镜
题意:给出坐标平面上的 $n$ 面镜子,它们都与坐标轴成 $45 ^ {\circ}$ 角,一束光从原点向 $x$ 轴正方向射出,走过了 $T$ 个单位后的坐标。
思路:并没有什么特别的思路,就是模拟,将镜子坐标离散出来后按照 $x, y$ 双关键字排序后就可以二分找到下一面镜子的位置,然后就可以很快的处理出来。
但是另外有一个很恶心的问题:环。所以我们需要特殊处理。
首先由于初中光学知识,光路是可逆的,也就是说在这道题的情境下,每面镜子的一面最多经过一次,如果出现第二次经过,则出现了环,那么模一下就可以保证复杂度了。
注意:……
代码: $tan 90 ^ {\circ}$
总结
并不是一场特别难的模拟赛,模拟题放 $\text{T3}$ 实在是太毒瘤了,写到后面心态爆炸。
不过 $\text{B}$ 的平衡树一遍打对了,倒还是不错。
整场比赛 $100 + 100 + 5 = 205pts$ 算是不错的成绩,就是可能需要更耐心一些去打模拟,心态爆炸是不行的Da☆Ze