题意:

      你是一个长官,有一些士兵要跟你先汇报任务后在去执行任务,每次只能接受一个人的汇报,但是每一时刻可以有多个士兵在执行任务,问所有任务执行完要的最小时间。

思路:

       按执行任务时间从大到小排序来执行就行了,至于为什么贪心的策略是这个我是这么想的,首先任何一个人执行任务的顺序都不会影响他的汇报和干活时间,还有就是

(1)如果两个任务的工作时间相等,汇报时间不同,那么他俩的顺序并不影响最终答案,也就是说汇报时间没什么意义。

(2)如果两个任务的汇报时间相同,工作时间不同,当然是工作时间长的放前面好了<这个可以自己画个图看看>,

(1)+(2)我们可以采取以工作时间长的优先工作的贪心策略。


#include<stdio.h>

#include<algorithm>

#define N 1000 + 5

using namespace std;

typedef struct

{

   int a ,b;

}NODE;

NODE node[N];


bool camp(NODE a ,NODE b)

{

   return a.b > b.b;

}

int main ()

{

   int n ,i ,Ans ,Sum ,cas = 1;

   while(~scanf("%d" ,&n) && n)

   {

      for(i = 1 ;i <= n ;i ++)

      scanf("%d %d" ,&node[i].a ,&node[i].b);

      sort(node + 1 ,node + n + 1 ,camp);

      Ans = Sum = 0;

      for(i = 1 ;i <= n ;i ++)

      {

         Sum += node[i].a;

         Ans = Ans < Sum + node[i].b ? Sum + node[i].b : Ans;

      }

      printf("Case %d: %d\n" ,cas ++ ,Ans);

   }

   return 0;

}

最新文章

  1. swift学习笔记4——扩展、协议
  2. show master/slave status求根溯源
  3. UEditor上传图片等附件都出现红叉,该怎么解决
  4. SQL Server调优系列基础篇
  5. Angular.JS
  6. springmvc学习笔记--支持文件上传和阿里云OSS API简介
  7. 在C函数中保存状态:registry、reference和upvalues
  8. [MAC] Mac下的SVN命令行
  9. iPhone开发中的技巧整理
  10. asp.net(class0625)
  11. dropdownlist无刷新传值
  12. MyBatis 学习总结(一)
  13. sql 用openxml 将xml转换为数据表Table
  14. BZOJ 3444: 最后的晚餐( )
  15. 浅谈Java Virtual Machine
  16. js 数组原型
  17. python全栈开发day39-CSS继承性和层叠性、权重问题、盒模型和其属性、文本级标签和块级标签、浮动
  18. iframe和ajax文件上传方法
  19. (转)Tomcat(java运行环境)安装及配置教程
  20. C# 爬虫小程序

热门文章

  1. h5返回上一页ios页面不刷新
  2. POJ-2349(kruskal算法+最小生成树中最大边的长度)
  3. EurekaServer源码分析
  4. 鸿蒙应用程序Ability(能力)看这一篇就够
  5. 局部莫兰指数的计算(运用ArcMap)
  6. 一次线上MySQL主从延迟排查
  7. .Net Core发布到Linux下验证码失效处理方案详解
  8. Python数据分析入门(十七):绘制条形图
  9. Dynamics CRM新加了组织后提示数据加密错误的解决方法
  10. OO_Unit1_Summary