Uva 11729 Commando War 贪心这么像思维怎么办 U•ェ•*U
时间:2019-10-19
本文章向大家介绍Uva 11729 Commando War 贪心这么像思维怎么办 U•ェ•*U,主要包括Uva 11729 Commando War 贪心这么像思维怎么办 U•ェ•*U使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题意:首长给士兵交代任务,交代任务需要时间b,士兵执行任务需要时间j,首长必须一个个交代任务,不能同时给两个人交代,交代任务的同时士兵可以执行任务。问花费的最少时间。
思路:
根据题意,很容易想到通过调整给士兵交代任务顺序来调整所用时间 ,那么在调整顺序的时候,如图,X和Y交换位置,要想交换后(Y在前X在后)的用时没有交换前(X在前Y在后)的优,满足B[X]+B[Y]+J[Y]<B[Y]+B[X]+J[X]即可,化简得J[Y]<J[X](即X执行用时一定要比Y执行用时大)。至此,大体思路为:将所有的J排序,从大到小(因为交换后肯定没有现在的时间更优),再计算执行完所有任务所用的最少时间。
Hint:
s+=dr[i].b;//当前任务的开始执行时间 ans=max(ans,s+dr[i].j)//更新任务执行完毕时的最晚时间
完整代码:
#include <iostream> #include <algorithm> #include <cstdio> using namespace std; #define N 10005 struct node{ int b,j; }dr[N]; bool cmp(node a,node b){ return a.j>b.j; } int main(){ int n,p=1; while(scanf("%d",&n)!=EOF&&n){ for(int i=0;i<n;i++){ scanf("%d%d",&dr[i].b,&dr[i].j); } sort(dr,dr+n,cmp); int s=0,ans=0; for(int i=0;i<n;i++){ s+=dr[i].b; ans=max(ans,s+dr[i].j); } printf("Case %d: %d\n",p++,ans); } return 0; }
原文地址:https://www.cnblogs.com/Neveah/p/11704449.html
- Flash/Flex学习笔记(9):ActionScript3.0与Javascript的相互调用
- Flash/Flex学习笔记(8):ActionScript3.0中的面对对象
- Docker网络解决方案-Weave部署记录
- Flash/Flex学习笔记(7):FMS3.5基于IIS的安装
- Netdata---Linux系统性能实时监控平台部署记录
- linux下向一个文件中的某行插入数据的做法
- Flash/Flex学习笔记(2):捕获摄像头
- split-brain 脑裂问题(Keepalived)
- Android新手之旅(3) 信息的输出
- Nginx code 状态码说明
- Flash/Flex学习笔记(6):制作基于xml数据源的flv视频播放器
- proxy_pass根据path路径转发时的"/"问题记录
- 温故而知新:查看端口占用情况以及DOS中的管道操作/重定向操作
- Android新手之旅(7) RadioButton的自定义
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法