山东省第五届ACM省赛
总结:大约拿出了2个多小时的时间来看题,一个是开始的时间有点晚了,同时后期卡在一个题上纠结,也就不想做了,共A了4道题,看了看当年的榜单,也就是混个铜牌的末尾。但是如今大家都进步了,更不应该松懈了。
A题
纯粹的数学题,做这道题真的让我怀疑我的数学水平了,y’ = 2ax + b,我竟然认为在x处的切线的斜率是2a, 关键是求出抛物线的表达式,然后进行积分,这道题最后才A了,真的不应该啊。好处就是这种题不会WA,一遍过。
1 |
|
E题
签到题,求10以内的阶乘
1 |
|
F题
给你一颗完全二叉树,给你任意两个节点的标号,问你这两个节点之间的最短距离是多少。第一次看的时候没思路,看A的人比较多之后,就有思路了。我们先把深度较深的节点往上找他的祖先,知道他的祖先和那个较浅的节点是兄弟节点,同时我们记录好较深的节点移动了几次,假设是m次。这样之后我们只需要求两个同深度的节点他们的最短距离,我们同时把他们往上移,直到他们的祖先相同,假设移动的次数是n次,那么这两个同深度的节点的距离就是2 n,最后2 n + m就是答案
1 |
|
G题
比赛的时候没有A,赛后补题发现是dp,发现很多排列组合的题都是dp,找一个一般的状态,都与它的前一状态相关。比如说这道题,设置$ dp[i][j] $ 为前i场比赛用了j种桌子的方法数目
有如下递推式:
$$ dp[i][j] = dp[i - 1][j] \times j + dp[i][j] \times (m - j + 1)$$
1 |
|
J题
告诉你一个序列 ,x1,x2,x3,xn 以及每个值对应w1,w2,w3,wn;
现在问你满足要求的某一个Xk是哪一个数字。
我们看到题目中有个xi < xk 和 xi > xk 就要想到排序了,同时我们要用前缀和记录前i个数字的和,这样当我们遍历到第i个数字的时候,我们就可以在O(1)时间表达出 第i个数字之前的所有数字的和,以及第i个数字之后的所有数字的和。就可以在O(n)的复杂度内算出Xk的值。WA了两次,是因为没有注意long long。
1 |
|