• 545D. Queue


    http://codeforces.com/problemset/problem/545/D

    题意:n个数的服务请求数组,求在其服务时间内,最大的可满足服务的请求数量

    首先对服务请求数组按照从小到大排序。

    下面判断其服务时间t 与 前面服务时间之和sum的关系

    若 t《 sum :  等待服务数+1

    若t>sum : 说明在服务待时间t内能够被服务。已经服务的时间sum+改请求的时间t 就是新的已经服务的时间和

    注意: sum是满足条件的服务时间和

    Java程序:

    import java.util.Arrays;
    import java.util.Scanner;
    
    
    public class D545 {
    
        /**
         * @param args
         */
        static void run(){
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int[] t = new int[n];
            int sum = 0;
            int count = 0;
            for(int i=0;i<n;i++){
                t[i] = sc.nextInt();
            }
            Arrays.sort(t);
            for(int i=0;i<n;i++){
                if(sum>t[i])
                    count++;
                else sum+=t[i];
    //            System.out.print(sum+" ");
            }
            System.out.println(n-count);
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            run();
        }
    
    }
    View Code

    Python程序:

    n = raw_input()
    t = map(int,raw_input().split())
    count = 0
    sum = 0
    for ti in sorted(t):
        if sum<= ti:
            count += 1
            sum += ti
    print count
        
    

      

  • 相关阅读:
    Groovy Closure & Action
    Groovy A simple DSL based on groovy
    Groovy 一些小细节
    Android 那些年踩过的坑
    Android Startup
    Android 开发最佳实践
    Android 开发经验-容易忽略的问题
    Android 开发经验-Fragment相关
    AQTime + Delphi
    关于ANSI,unicode与utf-8的区别
  • 原文地址:https://www.cnblogs.com/theskulls/p/4714707.html
Copyright © 2020-2023  润新知