1. 程式人生 > >HDU 1257——最小攔截系統

HDU 1257——最小攔截系統

某國為了防禦敵國的導彈襲擊,發展出一種導彈攔截系統.但是這種導彈攔截系統有一個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的導彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的導彈. 
怎麼辦呢?多搞幾套系統唄!你說說倒蠻容易,成本呢?成本是個大問題啊.所以俺就到這裡來求救了,請幫助計算一下最少需要多少套攔截系統. 
Input輸入若干組資料.每組資料包括:導彈總個數(正整數),導彈依此飛來的高度(雷達給出的高度資料是不大於30000的正整數,用空格分隔) 
Output對應每組資料輸出攔截所有導彈最少要配備多少套這種導彈攔截系統. 
Sample Input
8 389 207 155 300 299 170 158 65
Sample Output
2

分析:這個題目用貪心的思想是比較合適的,要求出最少配備的攔截系統數量,則只需保證每一套攔截系統都能打下儘可能多的導彈,直到系統無法打到依然存在的導彈中高度最低的一個。

AC程式碼:

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <vector>
#include <queue>

int a[1005];
int b[1005];

int main()
{
#ifdef LOCAL
	freopen("data.in","r",stdin);
	freopen("data.out","w",stdout);
#endif
    int n;
    int num;
    int gun;
    while(scanf("%d",&n)==1)
    {
        num=0;
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        for(int i=0;i<n;i++)
            scanf("%d",&a[i]);
        for(int i=0;i<n;i++)
        {

            if(b[i]==0)
            {
                num++;
                b[i]=1;
                gun=a[i];
                for(int j=i+1;j<n;j++)
                {
                    if(b[j]==0&&a[j]<=gun)
                    {
                        b[j]=1;
                        gun=a[j];

                    }
                }
            }
        }
        printf("%d\n",num);
    }
    return 0;
}


相關推薦

HDU 1257——攔截系統

某國為了防禦敵國的導彈襲擊,發展出一種導彈攔截系統.但是這種導彈攔截系統有一個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的導彈來襲.由

HDU 5988網絡流(浮點數)

blank empty pac scanf for continue -- math != 題目鏈接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5988 哇,以前的模版一直T,加了優先隊列優化才擦邊過。 建圖很好建,概率

hdu 1054 頂點覆蓋

二分圖的最小頂點覆蓋數等於二分圖的最大匹配數 // // main.cpp // wzazzy // // Created by apple on 2018/10/23. // Copyright © 2018年 apple. All rights reserved. // #incl

Linux Centos7.5 檢視IP地址( 系統安裝 )

ps:        Linux Centos7.5 最小化系統預設是把網絡卡給沒開啟,所以檢視不了ip地址。而且無法使用ifconfig命令,會提示命令找不到。  1、進入網絡卡的配置檔案,進行修改。 首先

Game HDU - 3657(割)

Game Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1563   &nb

centos系統安裝VMware tool

1.先執行命令建立環境 yum -y install update yum -y install gcc kernel-headers kernel-devel 2.然後重啟reboot 3.掛載,解壓,執行 [[email protected] ~]# mount /de

製作linux系統

         製作檔案系統需要使用到Busybox工具。Busybox是一個集成了一百多個最常用linux命令和工具的軟體。Busybox包含了一些簡單的工具,例如ls、cat和echo等,還包含了一些更大、更復雜的工具,如grep、find、m

ROS系統學習3---ROS話題系統的製作

在上一篇部落格中,我們介紹了怎麼建立一個ROS的最小系統,該系統包括工作空間、包和一個存放在包中的節點,然後我們讓該節點列印“Hello ROS”。 在這一篇部落格中,我們將進一步來搭建一個最小的話題系統。 在開始之前,我們來簡單的介紹下ROS的"話題"。 回想我們以前

訊為iTOP4412燒寫Linux系統

燒寫最小linux系統,需要四個檔案: 1、u-boot-iTOP-4412.bin       系統引導 2、zImage                  &n

ITOP4412 Linux系統搭建

         最近一直學習ITOP4412開發板的相關資料,主要是驅動部分的視訊學習、開發,現在返回來記錄一些開發過程,方便日後檢視。如有錯誤,歡迎大家指出。 ITOP4412開發板,可以支援An

RHEL6 系統 編譯安裝部署zabbix (mysql)

RHEL6 最小化系統 編譯安裝部署zabbix (mysql)官方說明詳細見:https://www.zabbix.com/documentation/4.0/manual/installation/install#installing_frontend   前言 為了避免在不同時期部署的裝

HDU 4311 曼哈頓距離-思維&卡時間-(橫縱座標分開算,排序)

題意:有n個點,求以這n個點中的某一點為起點,到各點的曼哈頓距離和最小是多少 分析: 暴力列舉又要超時,這種題一般都是考思維了,多半都是用技巧找到一個高效的方法。個人覺得這題跟上一篇文章的題是一個型別。這種思想要記住。 這題也是用“分治”,雖說題目要求的是曼哈頓距離,但是我

[轉載]iTOP-4412開發板搭建linux系統

開發板不僅可以執行Android和Qt,還可以執行最簡單的Linux最小文 件系統 Busybox簡介 製作檔案系統我們需要使用到Busybox 工具 – 版本為busybox-1.21.1.tar.bz2 – 開源網址是http://www.busybox.net

hdu 1151 覆蓋路徑演算法證明

又是二分圖。若還不知道匈牙利演算法,看我前面的文章 先把每個點拆成兩個,一個表示出,一個表示入,根據資料輸入,對應的出點和對應入點之間構造了一條邊。這樣就有了一個二分圖。 有向圖的最小路徑覆蓋 = 總

Linux Centos7.5 檢視IP地址( 系統安裝 )

ps:        Linux Centos7.5 最小化系統預設是把網絡卡給沒開啟,所以檢視不了ip地址。而且無法使用ifconfig命令,會提示命令找不到。  1、進入網絡卡的配置檔案,進

HDU 4862 費用大流+路徑覆蓋

題意:給個n行m列的數列,一個人可以走k次,每次選擇一個未走過的點,這個點繼續走的話,可以往下走或往右走,當然他可以跳著走,也就是可以跳到下面或右面任意一個位置,但前提是這個點沒有走過,初始能量為0,從a,b走到c,d消耗能量是|a-c|+|b-d|-1;問走K次能否將所

ROS系統學習4---服務系統的製作

上一篇文章我們介紹了ros最小話題系統的製作,本篇將進一步介紹ROS的另一種節點間的互動形式---服務 首先,什麼是服務? 它是節點間的另外一種互動方式(這是句廢話。。。),它提供了一種有應答的通訊方式。 其次,為什麼要有它? 這個問題比較深奧,我們得先回頭去看看“話

Exynos4412搭建檔案系統

環境: 主機:ubuntu 12.04  交叉編譯器:arm-2009q3.tar.bz2 工具:busybox-1.22.1.tar 開源網址是http://www.busybox.net/ 1、解壓Busybox到指定目錄 2、進入目錄busybox-1.22.1  

hdu 6437 /// 費用大流 負花費 SPFA模板

尋找 struct ini 隊列 開始時間 += min pri img 題目大意: 給定n,m,K,W 表示n個小時 m場電影(分為類型A、B) K個人 若某個人連續看了兩場相同類型的電影則失去W 電影時間不能重疊 接下來給定m場電影的 s t w op 表

Linux 學習筆記 1 使用系統,從分割槽安裝系統開始

我們常用的linux系統在安裝過程中大多都省略了對系統進行分割槽的操作,以至於後期,不瞭解什麼是分割槽以及分割槽當中最基本的一些概念, 我們不說最細的知識,只求瞭解這個過程,那直接步入正題,開始第一節的學習。   開始準備 Linux 系統映象一個 這裡我選擇的是 TinyCore Linux 最