题解 | #拦截导弹#

拦截导弹

http://www.nowcoder.com/practice/218f3db1f66d465bbf9578625aa90785

Q1:很明确就是最长递减子序列的长度

Q2:根据Dilworth定理:最少的下降序列个数就等于整个序列最长上升子序列的长度

n=eval(input())
heights=list(map(int,input().split()))
dp=[1]*n # Q1:最长递减子序列
dp2=[1]*n # Dilworth定理:最少的下降序列个数就等于整个序列最长上升子序列的长度
for i in range(1,n):
    for j in range(0,i):
        if heights[i]<=heights[j]:
            dp[i]=max(dp[j]+1,dp[i])
        else:
            dp2[i]=max(dp2[j]+1,dp2[i])
print(max(dp))
print(max(dp2))
全部评论

相关推荐

07-17 11:27
门头沟学院 Java
点赞 评论 收藏
分享
鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
评论
10
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务