每组输入有两行, 第一行,输入雷达捕捉到的敌国导弹的数量k(k<=25), 第二行,输入k个正整数,表示k枚导弹的高度,按来袭导弹的袭击时间顺序给出,以空格分隔。
每组输出只有一行,包含一个整数,表示最多能拦截多少枚导弹。
8 300 207 155 300 299 170 158 65
6
#coding=utf-8 #动态规划,找从右边开始最长的升序排列 while True: try: n=input() lis=list(raw_input().split()) lis=[int(i) for i in lis] dp=[1 for i in range(n)] for i in range(n-1,-1,-1): for j in range(i+1,n): if lis[i]>=lis[j]: dp[i]=max(dp[i],dp[j]+1) print max(dp) except: break