首页 > 其他分享 >P2949 [USACO09OPEN] Work Scheduling G

P2949 [USACO09OPEN] Work Scheduling G

时间:2024-05-20 13:07:57浏览次数:22  
标签:node USACO09OPEN ll Work pop 工作 while Scheduling sum

原题链接

题解

反悔贪心
把工作按截至时间排序,每个工作有两个决策。
如果这个工作有时间做,那就做;
如果没时间做,就在已经做过的工作里取消价值最小的工作,换成当前工作(这里有一个前提,那就是每个工作需要的时间是一样的,而且当前工作的价值大于已经做过工作里价值最小的)

code

#include<bits/stdc++.h>
using namespace std;

#define ll long long

struct node
{
    ll d, v;
} w[100005];

bool cmp(node b, node c)
{
    return b.d < c.d;
}

inline void read(ll &x) {
	x = 0;
	ll flag = 1;
	char c = getchar();
    while(c < '0' || c > '9'){
        if(c == '-') flag = -1;
        c = getchar();
    }
	while(c >= '0' && c <= '9') {
		x = (x << 3) + (x << 1) + (c ^ 48);
		c = getchar();
	}
	x *= flag;
}

inline void write(ll x)
{
    if(x < 0){
    	putchar('-');
		x = -x;
	}
    if(x > 9)
		write(x / 10);
    putchar(x % 10 + '0');
}

int main()
{
    ll n;
    read(n);
    for(ll i = 1; i <= n; i++)
    {
        read(w[i].d);
        read(w[i].v);
    }

    sort(w + 1, w + 1 + n, cmp);

    ll it = 1;
    priority_queue<ll, vector<ll>, greater<ll>> q;
    for(ll i = 1; i <= n; i++)
    {
        if(w[i].d >= it)
        {
            q.push(w[i].v);
            it++;
        }
        else
        {
            ll val = q.top();
            if(val < w[i].v)
            {
                q.pop();
                q.push(w[i].v);
            }
        }
    }

    ll sum = 0;
    while(!q.empty())
    {
        sum += q.top();
        q.pop();
    }
    write(sum);
    return 0;
}

标签:node,USACO09OPEN,ll,Work,pop,工作,while,Scheduling,sum
From: https://www.cnblogs.com/pure4knowledge/p/18201658

相关文章

  • Calico 组网(Networking)
    确定最佳网络选项了解Calico支持的不同网络选项,以便您可以选择最适合您需求的选项。Calico灵活的模块化架构支持广泛的部署选项,因此您可以选择适合您的特定环境和需求的最佳网络方法。这包括能够以非覆盖或覆盖模式、带或不带BGP运行各种CNI和IPAM插件以及底层网络类型......
  • C#基于.net framework的应用开发实战编程(一) - 编程手把手系列文章
    上次介绍了C#的基于.netframework的Dll类库和Winform的编程过程,今天就来个实战演练一下,结合上次的内容,让读者能够有一个实战的过程,知道怎么用C#进行Winform的编程过程,实现一个小应用。       准备工作;因为软件研发主要从需求、设计、编码、测试、安装这个过程......
  • homwork14
    题目:某培训机构入学管理系统有报名、交费和就读等多项功能,下面是对其各项功能的说明:1、报名:由报名处负责,需要在学员登记表上进行报名登记,需要查询课程表让学员选报课程,学院所报课程将记录到学员选课表2、交费:由收费处负责,需要根据学员所报课程的收费标准进行收费,然后在账目表上......
  • SimCLR: 一种视觉表征对比学习的简单框架《A Simple Framework for Contrastive Learn
    现在是2024年5月18日,好久没好好地看论文了,最近在学在写代码+各种乱七八糟的事情,感觉要和学术前沿脱轨了(虽然本身也没在轨道上,太菜了),今天把师兄推荐的一个框架的论文看看(视觉CV领域的)。20:31,正经的把这篇论文看完。论文:ASimpleFrameworkforContrastiveLearningofVisua......
  • kubernetes 源码开启 go work 模式
    为了更方便进行go项目多模块管理,go社区在gomod之后引入了go workspaces模式。kubernetes社区最近在 kubernetes源码中启用 go workspaces模式。go提出 go workspaces模式的issue,和社区 thockin 的关注 cmd/go:supportvendoringinworkspacemode·Is......
  • openpyxl Workbook
    Workbook说明Workbook类是用于表示Excel工作簿的核心类。它允许我们创建、读取、编辑和保存Excel工作簿文件。Workbook导入fromopenpyxlimportWorkbookWorkbook初始化fromopenpyxlimportWorkbook,load_workbook#创建一个新的Excel工作簿wb=Workbook()p......
  • homework10
    题目:某培训机构入学管理系统有报名、交费和就读等多项功能,下面是对其各项功能的说明:1、报名:由报名处负责,需要在学员登记表上进行报名登记,需要查询课程表让学员选报课程,学院所报课程将记录到学员选课表2、交费:由收费处负责,需要根据学员所报课程的收费标准进行收费,然后在账目表上......
  • 容器内存可观测性新视角:WorkingSet 与 PageCache 监控
    作者:行疾、尝君、佑祎、六滔容器工作内存WorkingSet 概念介绍在Kubernetes场景,容器内存实时使用量统计(PodMemory),由WorkingSet工作内存(缩写WSS)来表示。WorkingSet这个指标概念,是由cadvisor为容器场景定义的。工作内存WorkingSet也是Kubernetes的调度决策判断内......
  • VMware Workstation 17.5.2 Pro Unlocker & OEM BIOS for Windows & Linux - 在 Windo
    VMwareWorkstation17.5.2ProUnlocker&OEMBIOSforWindows&Linux-在Windows和Linux上运行macOSSonoma请访问原文链接:https://sysin.org/blog/vmware-workstation-17-unlocker/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVMwareWorkstationPro......
  • VMware Workstation 17.5.2 Pro macOS Unlocker & OEM BIOS for Windows - 在 Windows
    VMwareWorkstation17.5.2PromacOSUnlocker&OEMBIOSforWindows-在Windows上运行macOSSonoma请访问原文链接:https://sysin.org/blog/vmware-workstation-17-unlocker-windows/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVMwareWorkstationPro是......