A B 水题
C 描述:寻找一个括号序列中,最长的合法子序列。
使用栈来实现括号间的匹配,使用C[i]记录以i处后括号结尾的最长子序列的开始处。求出i的匹配j之后,可以看出若j-1处亦为后括号,且C[j-1]存在那么C[i]=C[j-1],否则C[i]=j。
D 简单的直线运动计算题……推一推就好了
E 描述:给一组环形分布的山,任意两个山能看见的话必须满足其间存在一条弧,弧上没有比两山任意之一更高的山,找出所有这样的对。
可以观察到,最高的那个山必然不存在于任意一对之间,所以可以找到最大的那个然后将其余的山按照原顺序排列起来,这时就不用考虑环的情况了,再对链进行操作即可。