- 博客(4)
- 收藏
- 关注
原创 AcWing.272最长公共上升子序列题解
如果倒数第二个数是b[k](k<j&&b[k]<b[j]),那么根据最长上升子序列问题的状态计算我们很容易得到,这部分可以用f[i-1,k]+1表示(注意,这里不是f[i,k],因为a[i]==b[j],我们先去掉b[j],自然a[i]也就去掉了,然后得到f[i-1,k],最后把b[j]加回来得到f[i-1,k]+1)f[i,j]表示由第一个数组的前i个数字和第二个数组的前j个数字组成的由b[j]结尾的公共上升子序列,这里的b[j]当然也可以是a[i],这两种设置是等价的。
2025-05-20 21:11:00
1959
原创 AcWing.187导弹防御系统题解
为了对抗附近恶意国家的威胁,R国更新了他们的导弹防御系统。一套防御系统的导弹拦截高度要么一直上升要么一直下降。例如,一套系统先后拦截了高度为3和高度为4的两发导弹,那么接下来该系统就只能拦截高度大于4的导弹。给定即将袭来的一系列导弹的高度,请你求出至少需要多少套防御系统,就可以将它们全部击落。
2025-05-19 21:08:38
1807
原创 P1020 [NOIP 1999 提高组] 导弹拦截题解
无论哪一种选择,当前数都会是某个导弹拦截系统的最后一个数,要使导弹拦截系统的数量尽可能的小,贪心地想,在选择之后,要让除当前数所在导弹导弹拦截系统外的所有系统的最后一个数尽可能的大,也就是要找到大于等于当前数的最小导弹系统结尾数,把当前数接在这个导弹系统的后面,这样在后面的选择中这些系统才能容纳的导弹高度更高,才能让导弹拦截系统的数量尽可能的小。选择一:重新开一个导弹拦截系统,要在g[]数组后面加上当前数,由于选择一的前提就是当前数大于所有的结尾数,所以插入的数一定是大于之前g[]数组的结尾数的。
2025-05-14 10:20:31
2146
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅