安装服务 LA 4850

题目大意

工程师需要安装n个服务,其中的第i个服务Ji需要Si个单位的时间,截止时间为Di,如果在截止时间之前完成任务不会收到惩罚,如果超时惩罚时间时Ci-di意思就是超时多少惩罚值就越大,从t=0时刻开始,找到两个惩罚值之和最小的任务。

分析

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
const int maxn = 800000 + 10;
struct order {
    int s, t;
    bool operator < (const order & a) const {
        return s < a.s;
    }
}ord[maxn];
priority_queue<order>q;
bool cmp(const order &a, const order & b) {
    return a.t < b.t || (a.t == b.t && a.s < b.s);
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        int n;
        cin >> n;
        for (int i = 0; i < n; ++i) {
            cin>>ord[i].s>>ord[i].t;
        }
        sort(ord, ord + n, cmp);

        while (!q.empty())q.pop();
        int cur = 0;
        for (int i = 0; i < n; ++i) {
            if (cur + ord[i].s <= ord[i].t) {
                q.push(ord[i]);
                cur += ord[i].s;
            }
            else {
                if (q.empty())continue;
                order u = q.top();
                if (u.s > ord[i].s) {
                    cur = cur - u.s + ord[i].s;
                    q.pop();
                    q.push(ord[i]);
                }
            }

        }
        printf("%d\n",q.size());
        if (t)puts("");
    }
    return 0;
}

原文地址:https://www.cnblogs.com/zhang2/p/11569164.html

时间: 2024-08-02 01:39:28

安装服务 LA 4850的相关文章

自动安装系统及网络安装服务

{unit自动安装系统} [1.kickstart脚本] kickstart脚本是自动应答系统在安装过程中一切问题的脚本文件 这个文件可以实现系统的自动安装 在系统安装完毕后会在系统的root家目录中生成 anaconda-ks.cfg这个文件就是以此系统为模板生成的kickstart脚本 [2.kickstart脚本的制作] 手动编写kickstart的脚本的难度很大 系统中system-config-kickstart工具可以以图形的方式制作kickstart (以下操作在虚拟机中) yum

Unix Study之--AIX 6.1配置网络安装服务

Unix Study之--AIX 6.1配置网络安装服务      通过网络安装可以减轻管理员的维护负担,并可以批量部署AIX系统的安装. 一.配置网络安装服务器 1)Server端配置 # prtconf|more System Model: IBM,9131-52A Machine Serial Number: 10367FG Processor Type: PowerPC_POWER5 Processor Implementation Mode: POWER 5 Processor Ver

phpnow 在win7下遇到“安装服务[apache_pn]失败”问题的一种解决办法

安装PHPnow时如果遇到下列问题: 安装服务[apache_pn]失败.可能原因如下: 1. 服务名已存在,请卸载或使用不同的服务名. 2. 非管理员权限,不能操作 Windows NT 服务. 将PHPnow重新解压一份出来.例如解压到E盘的phpnow中. 一.在win7下遇到该问题,极有可能是权限不够.在开始“搜索文件和程序”中,输入cmd.然后右键点击cmd.exe,选择“以管理员身份运行”.然后进入到E盘phpnow目录下.直接执行setup.cmd 即可成功安装. 二.还有一种可能

linux上安装php7 memcache扩展 和 安装服务端memcached

linux上安装memcached不算太困难.唯一让本人感到困难的是 php7的memcache扩展安装.真的蛋疼! 先说安装服务端 memcached 1. 首先安装Libevent事件触发管理器. wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz tar vxf libevent-2.0.21-stable.tar.gz cd libevent-2.0.21-stable ./c

配置yum仓库安装服务并确保开机启动

实验目标 安装vsftpd,httpd软件包 判断是独立还是临时服务 启动这2个服务 确保开机启动 安装telnet-server,判断是临时还是独立 启动 实验环境 虚拟机 实验步骤 一.环境准备 1. 配置yum仓库 [[email protected] ~]# cd /etc/yum.repos.d/ [[email protected] yum.repos.d]# ls rhel-debuginfo.repo [[email protected] yum.repos.d]# cp rhe

C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe

不得不说,.NET中安装服务很麻烦,即要创建Service,又要创建ServiceInstall,最后还要弄一堆命令来安装和卸载. 今天给大家提供一种方式,直接使用我们的程序来安装/卸载服务,并且可以让一个exe即能直接运行也行安装为windows服务 首先我们创建一个Windows应用程序,(我创建的是控制台程序,WinForm也一样) 接下来在项目中添加一个Windows服务类 然后双击"MainService.cs",在上面点右键"打开代码" 这里面写服务的具

win8以上的操作系统如何用bat安装服务

在win8以前的系统,我们在用bat的方式安装服务时,直接用下面的语句就可以了: %windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe xxxx.Service.exenet start xxxxpause 但是在win8以后的系统,系统对程序的权限要求有所提升,如果还用上面的命令,则会提示需要管理员权限,如果右键以管理员权限运行吧,又会提示找不到路径,怎么办呢? 我们可以像下面这样操作就可以了: @echo offset b=%

重庆专业oracle数据库集群安装服务-重庆思庄科技

核心词:重庆思庄,Oracle技术支持电话:023-68429836,Oracle数据库集群安装服务,性能调整,oracle数据库升级服务,Oracle不能启动,Oracle慢,Oracle数据库挂起,节点异常重启,不能连接Oracle,DG不能同步,...国内知名Oracle专家团队!为您解决各种Oracle疑难问题! Oracle数据库的RAC架构全面实施了数据库网格计算,Oracle RAC充分利用硬件,操作系统和公共存储的综合能力来提供强大的可靠性和可扩展性.Oracle RAC的优越性

Windows安装服务命令sc

1. 安装服务sc create 服务名称 binpath= "服务执行的命令" displayname= "显示名称" depend= Tcpip start= auto 其中网络连接使用TCP/IP,自动启动 2. 删除服务sc delete 服务名称 删除后可能需要重启动才行 3. 修改配置sc config 服务名称 binpath= "新命令" displayname= "新显示名称" depend= Tcpip 4