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();
    }

}

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

  

时间: 2024-10-29 15:43:22

545D. Queue的相关文章

Codeforces 545D - Queue

545D - Queue 思路:忍耐时间短的排在前面,从小到大排序,贪心模拟,记录当前等待时间,如过等待时间大于当前的这个人得忍耐时间,那么就把这个人扔到最后面,不要管他了(哼╭(╯^╰)╮,谁叫你那么没耐心呢),所以也就不用记录为他服务的时间. 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mem(a,b) memset((a),(b),si

Codeforce 545D. Queue

Little girl Susie went shopping with her mom and she wondered how to improve service quality. There are n people in the queue. For each person we know time ti needed to serve him. A person will be disappointed if the time he waits is more than the ti

CodeForces 545D Queue (排序模拟)

[题目链接]:click here~~ [题目大意]: 有n个人,每个人都有一个等待时间,如果对于当前的人来说总等待时间超过自己的等待时间,那么这个人就会失望,问换一下顺序,使失望的人最少,问最多有多少个人不失望. [思路]:排一下序然后加然后与当前的比较.如此.. 代码: /* * Problem: CodeForces 545D * Running time: 46MS * Complier: G++ * Author: herongwei * Create Time: 8:20 2015/

【CodeForces】545D Queue

传送门 题目描述 Little girl Susie went shopping with her mom and she wondered how to improve service quality. There are n people in the queue. For each person we know time ti needed to serve him. A person will be disappointed if the time he waits is more th

UVALive-7304 - Queue of Soldiers 【动态规划】【组合函数】【好题】

UVALive- 7304 - Queue of Soldiers 题目链接:7304 题目大意:士兵过山洞,必须以类似7 6 5 4 3 2 1顺序过.在第i个人之后,比i高的人都会被杀死,问如果要杀死k个人,有几种排队方法. 题目思路:先将士兵的身高离散化.假设N表示不同身高的数目.cnt[i] 表示i这个身高的人有多少个.(i的范围为1~N)sum[i]表示小于等于该身高段的士兵数目 然后开始dp,dp[i][j]表示已经到第i个士兵,已经死了j个人的方法数. 第三维遍历,q表示,第i+1

Java集合类: Set、List、Map、Queue使用

目录 1. Java集合类基本概念 2. Java集合类架构层次关系 3. Java集合类的应用场景代码 1. Java集合类基本概念 在编程中,常常需要集中存放多个数据.从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量.一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以动态增长的数据(在编译时无法确定具体的数量),java的集合类就是一个很好的设计方案了. 集合类主要负责保存.盛装其他数据,因此集合类也被称为容

【译】RabbitMQ:工作队列(Work Queue)

在第一篇我们写了两个程序通过一个命名的队列分别发送和接收消息.在这一篇,我们将创建一个工作队列在多个工作线程间分发耗时的工作任务. 工作队列的核心思想是避免立刻处理资源密集型任务导致必须等待其执行完成.相反的,我们安排这些任务在稍晚的时间完成.我们将一个任务封装为一个消息并把它发送到队列中.一个后台的工作线程将从队列中取出任务并最终执行.当你运行多个工作线程,这些任务将在这些工作线程间共享. 这个概念对于在一个HTTP请求中处理复杂任务的Web应用尤其有用. 准备工作 在前一篇中,我们发送了一条

HDU 1908 Double Queue&lt;Set&gt;

Problem Description The new founded Balkan Investment Group Bank (BIG-Bank) opened a new office in Bucharest, equipped with a modern computing environment provided by IBM Romania, and using modern information technologies. As usual, each client of th

UVa 133 The Dole Queue

 The Dole Queue  In a serious attempt to downsize (reduce) the dole queue, The New National Green Labour Rhinoceros Party has decided on the following strategy. Every day all dole applicants will be placed in a large circle, facing inwards. Someone i