zoukankan      html  css  js  c++  java
  • UVA 11729 Commando War 突击战 【贪心】

    题目链接:

      http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28436


    贪心

      按照工作执行时间的从长到短进行排序,之后计算总的执行时间(反证见刘汝佳P4)


    计算方法:

      先按照交代任务的时间依次累加,就是本次任务开始执行时的时间,这个时间加上任务完成的时间就是这次任务执行完毕后需要的总时间
      这个总时间如果没有之前的总时间长的话表示这次任务的执行时间是包括在上次任务的执行时间之间的
      超出的话就要更新总的任务执行时间
      最后输出总的任务执行时间的计数结果即可


     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstdio>
     4 using namespace std;
     5 const int MAXN = 1005;
     6 struct Job
     7 {
     8     int b, j;
     9     bool operator < (const Job& J) const // 1.const 2.从大到小排序
    10     {
    11         return j > J.j;
    12     }
    13 };
    14 Job J[MAXN];
    15 int N;
    16 
    17 int main()
    18 {
    19     int Case = 0;
    20     while(~scanf("%d", &N))
    21     {
    22         if(!N) break;
    23         Case++;
    24         for(int i = 0; i < N; i++) scanf("%d%d", &J[i].b, &J[i].j);
    25         sort(J, J+N);
    26         //for(int i = 0; i < N; i++) printf("%d	%d
    ", J[i].b, J[i].j);
    27         int JobBegin = 0;
    28         int TotalTime = 0;
    29         for(int i = 0; i < N; i++)
    30         {
    31             JobBegin += J[i].b; // 当前任务的开始时间
    32             TotalTime = max(TotalTime, JobBegin+J[i].j); // 到当前为止所有任务执行完毕所需的时间
    33         }
    34         printf("Case %d: %d
    ", Case, TotalTime);
    35     }
    36 
    37     return 0;
    38 }
  • 相关阅读:
    perl的eval语句
    PythonWin运行出错解决办法
    python多重继承
    perl调用shell
    python正则表达式匹配中文
    perl学习2处理用户输入
    awk介绍
    perl学习3qw及数组的应用
    perl的多线程
    perl学习5子程序中自动识别参数
  • 原文地址:https://www.cnblogs.com/miaowTracy/p/4836745.html
Copyright © 2011-2022 走看看