2020.5.29练习
Posted yyscn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020.5.29练习相关的知识,希望对你有一定的参考价值。
本次练习题有些难,我自己做了a,c题,剩余4题均看题解做的。
a题:要求数之间的差升序,我们先排一下序从小到大,如果为偶数则从n/2+1个数开始循环输出a[i],a[n-i+1]直到n;如果为奇数,则先输出a[n/2+1],再从n/2+2个数开始循环输出a[i],a[n-i+1]直到n。
b题:要求时数组升序,最快需要几秒,每秒增加2的t-1次方。我先找到降序序列的最大差,求补足这个差需要几秒即可。
c题:要求最多可以时多少数大于等于其要求的数,先排序,计算一下有多少个数大于x,算出这些数与X差的和,在用这些和与剩余数(倒序)与x的差(负数)相加,直到<=0为止,最后计算一下共有多少个数。
d题:要求杀死怪物的最少子弹。要想最少,那就充分利用爆炸,是爆炸都用上,怎末开始是个问题,先从前一个爆炸对自己伤害最小的怪物开始。在利用公式所有怪物的生命和-所有爆炸对怪物的实际伤害+伤害最小一次爆炸,算出即可。
e题:判断a数组是否可以经过运算后等于b数组。倒着一一比对,如果a中数大于b中数,则判断之前是否有-1,没有则输出no,跳出循环;小于则反之;如果所有数均满足则输出yes;
f题:判断一个数组的子序列是否美,输出有几个这样的子序列。需要用map和前缀和,先将0标记为0,以应对出现前两个数和为零的情况。在标记每一次前缀和为i(从一开始直到n),
并在之前判断此前缀和是否出现过,若出现过则减去对应的键值,没有的话加i,最后输出共有多少个合适的子序列。
以上是关于2020.5.29练习的主要内容,如果未能解决你的问题,请参考以下文章