HDU 1257 最少拦截系统
2011-04-09 02:17
260 查看
/* 若N个数 为递增序列 则最多需要N个导弹系统贪心 + DP 见注释 */ #include <stdio.h> #define MAX 100000 int height[MAX]; //height[i]表示第i个防导弹系统所能防御的最大高度 int t; //t个数 int high; //height[i]中 最高高度 的 下标 int a[MAX]; int main(){ int i,j; //j 导弹系统个数 while(scanf("%d",&t)!= EOF){ scanf("%d",&a[0]); height[0] = a[0]; high = 0; j = 1; for(i = 1; i < t; i++){ scanf("%d",&a[i]); if(a[i] >= height[high]){ height[j++] = a[i]; if(height[j - 1] > height[high]){ //更新high值 high = j - 1; } } else { //贪心选择高度最小的且比能够抵抗住a[i]的导弹 int k,min = 0X7FFFFFFF,min_index; for(k = 0; k < j; k++){ if(height[k] >= a[i] && min > height[k] - a[i]){ min = height[k] - a[i]; min_index = k; } } height[min_index] = a[i]; } } printf("%d\n",j); } return 0; }
相关文章推荐
- HDU-1257 最少拦截系统(LIS)
- HDU 1257 最少拦截系统(基础DP,贪心)
- hdu 1257 最少拦截系统 (贪心)
- hdu 1257 最少拦截系统
- hdu 1257 最少拦截系统
- hdu 1257 最少拦截系统 (暴力版&温柔版/强力注释版)
- HDU 1257——最少拦截系统——————【LIS变型题】
- 【HDU 1257】最少拦截系统(dp求最长 不降 子序列)
- HDU 1257 最少拦截系统(贪心)
- hdu 1257 最少拦截系统(DP)
- hdu 1257 最少拦截系统 (DP)
- HDU_1257_最少拦截系统
- HDU 1257 - 最少拦截系统
- hdu 1257 最少拦截系统
- HDU 1257 最少拦截系统【最长上升子序列】
- HDU 1257 最少拦截系统 贪心
- HDU:1257 最少拦截系统(贪心+动态规划DP||LIS?)
- HDU - 1257 最少拦截系统(最少下降序列 + 贪心)
- HDU 1257---最少拦截系统
- HDU 1257 最少拦截系统(最长上升子序列)