本文主要是介绍hdu-1257最少拦截系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原题链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1257
考查最长递减子序列。
过程相当于数组的每个元素尽可能拦住最多的导弹。
代码比较好理解。
代码如下:
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
using namespace std;
int mdsum[1000+5];
int main()
{ int sum ,n,x;while (scanf_s("%d",&n)!=EOF){sum = 0;memset(mdsum, 0, sizeof(mdsum)); for (int i = 0; i < n; i++){cin >>x;int j = 0;for (; j <= sum; j++) //过程相当于数组的每个元素尽可能拦住最多的导弹。{if (x <= mdsum[j]){mdsum[j] = x;break;}}if (j>sum)mdsum[++sum] = x;}cout << sum << endl;}return 0;
}
这篇关于hdu-1257最少拦截系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!