这周打了两场比赛,整体来讲感觉还不错,最起码第一题可以很快地ac,但依然没有突破第二道的瓶颈。接下来的比赛过程中,这将是我着重攻克的难关之一。还有就是要灵活运用之前所学的知识,昨天的比赛中第一题用的就是连续取余和整除,如何运用这类知识也是接下来的培养重点。
这一周没有什么题做,我在网上找到了一个二分法的经典例题。
某一个国家开发了一套导弹拦截系统,这个拦截系统可以拦截敌国打来的导弹。不同射程的导弹在弹射出去的时候的飞行高度都不同,这个拦截系统可以从低到高拦截飞来的导弹,但是它下一次拦截的高度必须大于等于上一次高度,只能升高不能降低。那么请问,假设我们检测到了所有敌国发射的导弹飞行的高度,请问我们最多可以拦截其中多少枚?
这是一道二分法优化动态规划的题目。看似讲了这么多,其实用一句话就概括了,就是求一个序列当中最长不下降子序列的长度。我们看看所有小于等于i的j,如果aj小于等于ai+1,那么说明ai+1可以跟在aj的后面,构成一个解。如果我们用dp数组来存储所有位置的答案,那么我们可以得到下面这个转移方程:ai=max(dp[j]+1).由此可得出答案。
第十一周学习总结
最新推荐文章于 2021-04-12 17:30:00 发布