zoukankan      html  css  js  c++  java
  • hdu 1257

    http://acm.hdu.edu.cn/showproblem.php?pid=1257

    题意:有个拦截系统,这个系统在最开始可以拦截任意高度的导弹,但是之后只能拦截不超过这个导弹高度的导弹,现在有N个导弹需要拦截,问你最少需要多少个拦截系统

    思路:按高度由大到小进行排序,然后在遍历这个,用一个数组继续每个导弹拦截系统可以拦截的最低高度,如果发现当前的点需要在所以的拦截系统拦截的最低高度之前,那么在加一个拦截系统

     1 import java.awt.Point;
     2 import java.io.BufferedReader;
     3 import java.io.File;
     4 import java.io.FileNotFoundException;
     5 import java.io.FileOutputStream;
     6 import java.io.IOException;
     7 import java.io.InputStream;
     8 import java.io.InputStreamReader;
     9 import java.io.OutputStream;
    10 import java.io.PrintStream;
    11 import java.lang.reflect.Array;
    12 import java.math.BigInteger;
    13 import java.util.Arrays;
    14 import java.util.Comparator;
    15 import java.util.Random;
    16 import java.util.Scanner;
    17 import java.util.StringTokenizer;
    18 
    19 public class Main {
    20     public static void main(String[] args) throws FileNotFoundException{
    21     //    InputReader cin = new InputReader(System.in);
    22         Scanner cin = new Scanner(System.in);
    23         int t;
    24         Point p[] = new Point[20005];
    25         for(int i =0;i<20005;i++)
    26             p[i] = new Point();
    27         int cnt[] = new int[20005];
    28         while(cin.hasNext()){
    29             t = cin.nextInt();
    30             for(int i =0;i<t;i++){
    31                 p[i].x = cin.nextInt();
    32                 p[i].y = i;
    33             }
    34             Arrays.sort(p,0,t,new zxc());
    35             cnt[0] = p[0].y;
    36             int res = 1;
    37             for(int i = 1,j;i<t;i++){
    38             //    System.out.println(p[i].x+"   "+p[i].y);
    39                 for(j = 0;j<res;j++){
    40                     if(p[i].y>cnt[j]){
    41                         cnt[j] = p[i].y;
    42                         break;
    43                     }
    44                 }
    45                 if(j==res){
    46                     cnt[res++] = p[i].y;
    47                 }
    48             }
    49             System.out.println(res);
    50         }
    51     }
    52 }
    53 
    54 
    55 class zxc implements Comparator<Point>{
    56 
    57     
    58     public int compare(Point a, Point b) {
    59         if(a.x==b.x)
    60             return a.y-b.y;
    61         return b.x-a.x;
    62     }
    63     
    64 }
  • 相关阅读:
    机器学习到底适合哪些人群?
    Window 下载Android系统源代码
    KeyguardSimPinView
    TrustManagerService.java
    ScrimState.java
    KeyguardSliceView.java
    博客
    name="verify-v1"是做什么用的
    基础练习 特殊回文数
    算法训练 P1103
  • 原文地址:https://www.cnblogs.com/Tree-dream/p/7451790.html
Copyright © 2011-2022 走看看