#include <stdio.h>
#define MAXN 30002
int main()
{
int n,j,i,ans,hmax[MAXN],arr[MAXN];
while(scanf("%d",&n)!=EOF)
{
memset(hmax,0,sizeof(hmax));
for(i=0;i<n;++i)
scanf("%d",&arr[i]);
hmax[0]=0;
ans=1;
for(i=0;i<n;++i)
{
for(j=0;j<ans;++j)
{
if(arr[i]<=hmax[j])
{//每一发炮弹都不能超过前一发的高度
hmax[j]=arr[i];
break;
}
if(arr[i]>hmax[j]&&j==ans-1)
hmax[ans++]=arr[i];
}
}
printf("%d\n",ans-1);
}
return 0;
}hdu1257 最少拦截系统 (贪心)
最新推荐文章于 2021-06-02 15:00:02 发布
本文通过一个C语言程序示例介绍了如何使用动态规划算法解决特定问题。该程序利用一维数组进行动态规划,通过不断更新数组来寻找最优解,并最终输出结果。此示例适用于理解动态规划的基本原理及其在实际编程中的应用。
523

被折叠的 条评论
为什么被折叠?



