TOJ1004 防御导弹问题

原创 2005年05月30日 18:36:00

/*


防御导弹

http://acm.tongji.edu.cn/people/ps/showproblem.php?problem_id=1004


Time Limit:1s Memory Limit:1000k
Total Submit:4585 Accepted:1439


Time Limit:1s Memory Limit:1000k
Total Submit:4585 Accepted:1439


Time Limit:1s Memory Limit:1000k
Total Submit:4585 Accepted:1439

--------------------------------------------------------------------------------

Problem
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够达到任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在使用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。

Input
最多20个整数,分别表示导弹依次飞来的高度(雷达给出高度数据是不大于30000的正整数)

Output
两个整数M和N。表示:这套系统最多能拦截 M 枚导弹,如果要拦截所有导弹最少要配备 N 套这种导弹系统。

Sample Input
300 250 275 252 200 138 245

Sample Output
5 2

*/

#include <stdio.h>

int main()
{
 int decv[20], decx[20];
 int height[20], mask[20];
 int i, j, M, N, count, left, max, idx;
 
 count = 0;
 while (scanf("%d", &height[count]) != EOF)
  count++;
  
 for (i=0; i<count; i++)
  mask[i] = 1;
  
 left = count;
 M = N = 0;
 while (left > 0)
 {
  max = 0;
  for (i=count-1; i>=0; i--)
   if (mask[i])
   {
    decv[i] = 1;
    decx[i] = -1;
    for (j=i+1; j<count; j++)
     if (mask[j])
     {
      if (height[i] >= height[j] && decv[i] < 1+decv[j])
      {
       decv[i] = 1+decv[j];
       decx[i] = j;
      }
     }
    if (max < decv[i])
    {
     max = decv[i];
     idx = i;
    }
   }
   
  if (M < max)
   M = max;
   
  left -= max;
  N++;
  i = idx;
  while (i != -1)
  {
   mask[i] = 0;
   i = decx[i];
  }
 }
 printf("%d %d/n", M, N);

 return 0;
}

2013寒假练习 1012:导弹防御问题

地址http://acm.bit.edu.cn/mod/programming/view.php?id=663 经典DP题。先求一个最大不上升子序列的长度没问题。至于第二问一共需要几个导弹。。居然是...

【欧拉回路】toj 1004 John's trip

题目大意,给m个顶点,n条边的无向图,问是否存在欧拉回路。 细节1:起点是第一行数据中两个端点较小的那个,不一定是1号顶点。 细节2:要求输出的欧拉回路的边序列字典序最小。 细节处理:起点不要搞...

1158: 防御导弹

题目Description某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截 系统有一个缺陷:虽然它的第一发炮弹能够达到任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷...

STK:STK导弹防御系统功能说明

STK导弹防御系统功能说明 一、目标弹和拦截弹建模 (1)分析相对位置和姿态运动; (2)弹道预测,目标弹坐标 (3)对跟踪模拟器系统进行测量 (4)计算拦截点 (5)对单级、多级、分导式...

防御导弹算法

防御导弹 Problem 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。 但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够达到任意的高度,但是以后每一发炮弹都不能高于前一发的高度。 某天,...

CodeVS2490 导弹防御塔 【二分答案】【匈牙利】

CodeVS2490
  • theljt
  • theljt
  • 2017年07月06日 11:43
  • 105

导弹防御塔(题解+代码)

DescriptionFreda的城堡——“Freda,城堡外发现了一些入侵者!”“喵…刚刚探究完了城堡建设的方案数,我要歇一会儿嘛lala~”“可是入侵者已经接近城堡了呀!”“别担心,rainbow...

【NOIP2013模拟】导弹防御塔

Freda的城堡—— “Freda,城堡外发现了一些入侵者!” “喵…刚刚探究完了城堡建设的方案数,我要歇一会儿嘛lala~” “可是入侵者已经接近城堡了呀!” “别担心,rainbow,你看...

1048: 导弹防御系统

1048: 导弹防御系统 时间限制: 1 Sec  内存限制: 128 MB 提交: 305  解决: 75 [提交][状态][讨论版] 题目描述 某国为了防御敌国的导弹袭击,开发出一种导弹...
  • zhsy28
  • zhsy28
  • 2016年08月12日 12:23
  • 1410

【NOIP2013模拟】导弹防御塔

DescriptionFreda的城堡—— “Freda,城堡外发现了一些入侵者!” “喵…刚刚探究完了城堡建设的方案数,我要歇一会儿嘛lala~” “可是入侵者已经接近城堡了呀!” “别担心...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TOJ1004 防御导弹问题
举报原因:
原因补充:

(最多只允许输入30个字)