hdu_1257(最少拦截系统)
2011-10-02 13:55
211 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1257
这勉强算是一道动归的题吧,不能用贪心算法来做,因为你要拦截的导弹高度是敌方决定的,而且后面出现的高度有可能会比前面高,所以要用到动归的思想。用X[i]存储第i+1发导弹的高度,用Y[j]来存储
第j+1套系统的所能阻截的最大高度,每次阻截都得将阻截的高度赋给Y[j]。然后看一共需要多少套系统
就OK了。
代码:
#include <stdio.h> #define M 100000 int x[M],y[M]; int main() { int n,i,j,c; while(scanf("%d",&n)!=EOF) { c = 1; for(i = 0;i < n; i++) { scanf("%d",&x[i]); //循环读入导弹高度 for(j = 0;j < c; j++) if(x[i] < y[j]) { y[j] = x[i]; break; //阻截后就可以读入下一次的高度 } if(j == c) //j=c说明之前的系统都打不了这么高,所以得增加一套系统 y[c++] = x[i]; } printf("%d\n",c-1); } return 0; }
相关文章推荐
- HDU 1257 最少拦截系统 LIS
- HDU 1257 最少拦截系统(最长上升子序列+贪心)
- HDU 1257 最少拦截系统
- HDU 1257 最少拦截系统
- HDU 1257 最少拦截系统
- hdu 1257 最少拦截系统 (贪心)
- HDU 1257:最少拦截系统
- HDU 1257 最少拦截系统 (动态规划)
- 每日三题-Day3-C(HDU 1257 最少拦截系统 最长上升子序列O(nlogn) )
- HDU_1257 最少拦截系统 (dp)
- HDU 1257 最少拦截系统
- hdu 1257 最少拦截系统 dp or 贪心
- hdu 1257 最少拦截系统
- dp基础-2 N - Longest Ordered Subsequence POJ - 2533+ HDU - 1257最少拦截系统
- hdu 1257 最少拦截系统
- hdu 1257 最少拦截系统(dp)
- hdu 1257 最少拦截系统【贪心 || DP——LIS】
- hdu 1257 最少拦截系统 贪心
- hdu 1257 最少拦截系统
- HDU 1257 最少拦截系统(贪心算法)