当前位置: 首页 > news >正文

UVA11729 Commando War【贪心】

问题链接:UVA11729 Commando War。

问题简述:有n个部下需要完成一项任务,给第i个部下交代任务需要Bi时间,执行任务需要Ji时间,要求尽早完成任务,请输出最后完成任务需要的最小总时间。

这个问题是一个典型的贪心法问题,求完成任务的最短时间。用C++编程比较方便。

程序说明

程序中,比起用结构表示,每一项任务用一个类对象表示,程序处理起来比较方便,所以实现了一个简单的类job。

排序时,任务J按时间从大到小执行,可以得到最短的完成任务时间。但是,如果任务的时间相同,应该让交代任务时间较短的任务优先执行。


AC通过的C++语言程序如下:

/* UVA11729 Commando War */

#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdio>

using namespace std;

const int MAXN = 10000;

class job {
public:
    int b, j;

    job(int b, int j):b(b), j(j){}

    bool operator < (const job& r) const {
        return (j == r.j) ? b < r.b : j > r.j;
    }
};

vector<job> myjob;

int main()
{
    int n, b, j, caseno=0;

    while(scanf("%d", &n) != EOF && n != 0) {
        myjob.clear();

        for(int i=0; i<n; i++) {
            scanf("%d%d", &b, &j);
            myjob.push_back(job(b, j));
        }

        sort(myjob.begin(), myjob.end());

        int sum = 0, ans = 0;
        for(int i=0; i<n; i++) {
            sum += myjob[i].b;
            ans = max(ans, sum + myjob[i].j);
        }

        printf("Case %d: %d\n", ++caseno, ans);
    }

    return 0;
}


转载于:https://www.cnblogs.com/tigerisland/p/7564488.html

相关文章:

  • 根据 选中行数据状态进行按钮的展示和置灰功能
  • 视频编解码学习之五:差错控制及传输
  • Git安装和项目中常用的git命令,
  • php发送邮件(正解!!!)
  • 开发项目时,分支新建和合并保留
  • linux备份文件和数据库脚本
  • 远程操作分支
  • ansible 运维工具简单整理
  • 循环遍历数组中的每一项,并根据每一项的某个值进行判断 every 、forEach ,some
  • 杭电 1231 最大连续子序列
  • 实例,用computed 计算属性,来进行全选和反选
  • 当div自适应的高度超过预设的高度的时候出现滚动条的办法
  • 浮动相关
  • 利用computed计算属性写购物车商品计算价格 (会用到数组的方法reduce做聚合操作)
  • Slate中绑定动态数据
  • 【Amaple教程】5. 插件
  • Android交互
  • bearychat的java client
  • Bootstrap JS插件Alert源码分析
  • CentOS6 编译安装 redis-3.2.3
  • dva中组件的懒加载
  • ES2017异步函数现已正式可用
  • FineReport中如何实现自动滚屏效果
  • Hibernate【inverse和cascade属性】知识要点
  • java取消线程实例
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • laravel with 查询列表限制条数
  • Lucene解析 - 基本概念
  • pdf文件如何在线转换为jpg图片
  • Python语法速览与机器学习开发环境搭建
  • 百度地图API标注+时间轴组件
  • 闭包--闭包之tab栏切换(四)
  • 简单基于spring的redis配置(单机和集群模式)
  • 来,膜拜下android roadmap,强大的执行力
  • 容器服务kubernetes弹性伸缩高级用法
  • 我的面试准备过程--容器(更新中)
  • 携程小程序初体验
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​学习一下,什么是预包装食品?​
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (C#)获取字符编码的类
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .net反编译工具
  • .NET企业级应用架构设计系列之技术选型
  • .NET学习全景图
  • @Mapper作用
  • [ linux ] linux 命令英文全称及解释
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项
  • [C语言]编译和链接