期末测试20210123(425/600)
- 基因中有A
- [ 解题思路] :前缀和记录AC的数量;
- !!!*sum[R]-sum[L],因为AC是两个字符,但是记录在C位置上,所以当包含的区间只留了其中一个,则应该减去前面的半个AC;
- [反思 ] :使用了较为复杂的树状数组,(签到题目用前缀和不香吗)
- [ 解题思路] :前缀和记录AC的数量;
- 奥特曼打小怪兽
- [ 解题思路] :二分答案
- [ 反思] :考试时直接暴力弄了一个优先队列,却没有考虑到数据范围,会超时;
- 老板砍树
- [ 解题思路] :类似于奶牛大学,用循环分别跑一遍两边要求所需的高度;
- 平均身高
- [ 解题思路] :顺序对;
- (利用每个值与平均身高的差值构造前缀和,最后利用树状数组,求顺序对)
- [反思 ] :肯定不能使用纯dp来解决,因为会TLE,所以下次做题时,用一种方式不行时,即使更换方法,并且学会推出更加简便的式子,看到题目的本质;
- [ 解题思路] :顺序对;
- 作业积分
- [ 解题思路] :栈,贪心;
- (贪心的利用,首先题目有难度系数以及题目类型两个影响最终得分的因素,并且我们可以显然推出,按照题目的难度系数排序后,我们想要更换前面的题目来增加题目的类型时,肯定只能更换成没有出现过的题目类型,并且是题目权重最大的那一个,于是乎,我们利用栈记录,1-k中出现过两次及以上的题目,并枚举后面的题目,只选择没出现过的题目(因为已经提前排序,所以第一个一定会是权重最大的那一个),然后和ans进行比较,记录最大的那一个)
- [ 反思] 只用了最简单的贪心进行暴力骗分,应该理性分析题目的策略;
- [ 解题思路] :栈,贪心;
- 猜球游戏
- [ 解题思路] :最小生成树;
- 仔细分析可得,要想知道k个杯子的权值,就必须知道0(假设一个不存在的杯子)-k区间内所有(k-1,k]的取值,即询问后将所有的点连在一起(因为是求最小代价,所以不能出现环,以保证答案的最小)
- ! ! ! * 连边时,连的是L-1与R两个点,并且要连k条边;
- [ 反思] :不知道是不是浑水摸鱼过的,但是当时确实没有想得很清楚(这个题我不会做,但是AC一下是没什么问题的(doge) WTCL )
- [ 解题思路] :最小生成树;