zoukankan      html  css  js  c++  java
  • 突击战(Commando War,UVa 11729)

      你有n个部下,每个部下需要完成一项任务。第i个部下需要你花Bi分钟交待任务,然后他会立刻独立地、无间断地执行Ji分钟后完成任务。你需要选择交待任务的顺序,使得所有任务尽早执行完毕(即最后一个执行完的任务尽早结束)。注意,不能同时给两部下交待任务,但部下们可以同时执行他们各个的任务。

    【输入格式】

      输入包含多组数据,每组数据的第一行为部下的个数,N(1<=N<=1000);以下N行每行两个整数B和J(1<= B <= 1000, 1<= J <= 1000),即交待任务的时间。输入结束标志为N=0。

    【输出格式】

      对于每组数据,输出每组任务完成的最短时间。

    【样例输入】
        3
        2 5
        3 2
        2 1
        3
        3 3
        4 4
        5 5
        0
    【样例输出】
        Case 1: 8
        Case 2:15
    

     代码如下

     #include <cstdio>#include <vector>

    #include <algorithm>
    
    using namespace std;
    
    //定义一个士兵结构体 struct Job{ int j;  //完成任务花的时间 int b;  //交待任务花的时间
     bool operator < (const Job& x) const{   //操作符重载,后面使用sort时使用 return j > x.j; } }; int main(){ int n, b, j, kcase = 1; Job job; while(scant("%d", &n) == 1 && n){ vector<Job> v; for(int i=0; i<n; i++){ scanf("%d%d", &j, &b); job.j = j; job.b = b; v.push_back(job); } sort(v.begin(), v.end()); int s = 0; int ans = 0; for(int i=0; i<n; i++){ s += v[i].b; ans = max(ans, s + v[i].j); } printf("Case %d: %d", kcase, ans); } return 0; }

     执行过程

    4 7
    4 5
    6 2
    
    0:s = 4, ans = max(0, 4+7) = 11
    1: s = 4 + 4 = 8, ans = max(11, 8+5) = 13
    2: s = 8 + 6 = 14, ans = max(13, 14 + 2 = 16) = 16;
    
  • 相关阅读:
    ps去掉png alpha
    unity运行中抓显示中的贴图数量和内存
    再议移动平台的AlphaTest效率问题
    ios ExportOptions.plist
    iOS开发-导出xcode中已有的配置文件Provisioning profile
    iOS命令行自动打包(archive)
    mac sh相关
    在Mac中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory
    mac运行sh
    mac上显示隐藏系统文件的快捷键
  • 原文地址:https://www.cnblogs.com/qifeng1991/p/4101581.html
Copyright © 2011-2022 走看看