• UVa 11729 Commando War 突击战


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

    既然是要尽早完成任务,当然执行时间长的先交待,先执行。所以对所有数据按执行时间从大到小的顺序进行排序,然后开始处理,通过更新最晚的时间来得到最终结果。

    简单的贪心,附上AC代码:

       1: #include <stdio.h>
       2: #include <math.h>
       3: #include <iostream>
       4: #include <cstdarg>
       5: #include <algorithm>
       6: #include <string.h>
       7: #include <stdlib.h>
       8: #include <string>
       9: #include <list>
      10: #include <vector>
      11: #include <map>
      12: #define LL long long
      13: #define M(a) memset(a, 0, sizeof(a))
      14: using namespace std;
      15:  
      16: void Clean(int count, ...)
      17: {
      18:     va_list arg_ptr;
      19:     va_start (arg_ptr, count);
      20:     for (int i = 0; i < count; i++)
      21:         M(va_arg(arg_ptr, int*));
      22:     va_end(arg_ptr);
      23: }
      24:  
      25: typedef struct A
      26: {
      27:     int b, j;
      28:     bool operator < (const A& x) const
      29:     {
      30:         return j > x . j;
      31:     }
      32: }A;
      33:  
      34: int main()
      35: {
      36:     int n, count = 1;
      37:     while (~scanf("%d", &n) && n)
      38:     {
      39:         vector <A> buf;
      40:         int b, j;
      41:         for (int i = 0; i < n; i++)
      42:         {
      43:             scanf("%d%d", &b, &j);
      44:             buf.push_back((A){b, j});
      45:         }
      46:         sort(buf.begin(), buf.end());
      47:         int end = 0, now = 0, ans = 0;
      48:         for (int i = 0; i < n; i++)
      49:         {
      50:             now += buf[i] . b;
      51:             end = max(end, now + buf[i] . j);
      52:         }
      53:         printf("Case %d: %d
    ", count++, end);
      54:     }
      55:     return 0;
      56: }

  • 相关阅读:
    Liunx学习总结(三)--用户和用户组管理
    Liunx学习总结(二)--目录和文件管理
    Markdown表格宽度调整
    Liunx学习总结(一)--初识 Liunx
    好看的404页面
    qt打印输出到控制台
    平台 DllRegisterServer调用失败
    linux下编译安装SDL2和ffmpeg
    ffmpeg函数05__vcodec_decode_video2()
    ffmpeg函数04__v_register_output_format()
  • 原文地址:https://www.cnblogs.com/wuhenqs/p/3202524.html
Copyright © 2020-2023  润新知