ACM 训练日志记录 · 思考 · 成长 提交 / 修改记录
王梓豪 / 题目列表训练档案
导出

P1020 导弹防御系统

来源:洛谷 ★ 1500

本题活力0.24按难度、完成结果与训练证据估算

算法如山行则将至

题目描述

计算最多能拦截的导弹数量,要求每发炮弹不高于前一发。

代码

#include <bits/stdc++.h>
using namespace std;

int main()
{int n;
	cin>>n;
	vector<int> v(n);
	for(int i=0;i<n;i++)
	{cin>>v[i];
	}
	vector<int> dp(n);
	dp[0]=1;
	for(int i=1;i<n;i++)
	{
		for(int j=0;j<i;j++)
		{
			if(v[i]<=v[j])
			{
				dp[i]=max(dp[i],dp[j]+1);
			}
			else
			{
				dp[i]=max(dp[i],1);
			}
		}
	}
	int max_=-1;
	for(int i=0;i<n;i++)
	{
		max_=max(max_,dp[i]);
	}
	cout<<max_;
}