#include<bits/stdc++.h>
using namespace std;
typedef pair<long long,int>clot;
priority_queue<clot,vector<clot>,greater<clot> >wash,dry;//升序队列
int l,n,m;
long long ans=0;
long long tim[1000010],w[100010],d[100010];//tim记录衣服的经过从洗衣机到烘干机拿出的时间之和,最晚放进烘干机那批衣服里时间之和最长的即为ans
int main()
{
    scanf("%d%d%d",&l,&n,&m);
    for(int i=1;i<=n;i++)
    {
        scanf("%lld",&w[i]);
        wash.push(clot(w[i],i));//将洗衣机的数据放入优先队列
    }
    for(int i=1;i<=m;i++)
    {
        scanf("%lld",&d[i]);
        dry.push(clot(d[i],i));//将烘干机的数据放入优先队列
    }
    for(int i=0;i<l;i++)
    {
        clot tmp=wash.top();//取工作最快的洗衣机
        wash.pop();
        tim[i]=tmp.first;//当前已经工作完成的最快的洗衣机
        tmp.first+=w[tmp.second];//记录时间累加,这台洗衣机累计的工作时间
        wash.push(tmp);//再次放入队列让它工作
    }
    for(int i=l-1;i>=0;i--)//最晚洗完的衣服放到最快的烘干机里,否则会很慢,此处贪心
    {
        clot tmp=dry.top();//取工作最快的烘干机
        dry.pop();
        tim[i]+=tmp.first;//当前已经工作完成的最快的烘干机
        tmp.first+=d[tmp.second];//记录时间累加,这台烘干机累计的工作时间
        dry.push(tmp);//再次放入队列让它工作
        ans=max(ans,tim[i]);//取一个花费时间最长的,木桶效应,有的衣服可能洗完得早放进了工作时间长的烘干机里导致时间之和更长
    }
    printf("%lld\n",ans);
    return 0;
}

中山纪念中学20170310洗衣服(贪心,优先队列升序【pair】)的更多相关文章

  1. 2019中山纪念中学夏令营-Day14 图论初步【dijkstra算法求最短路】

    Dijkstra是我学会的第一个最短路算法,为什么不先去学SPFA呢?因为我在luogu上翻到了一张比较神奇的图: 关于SPFA -它死了 以及网上还有各位大佬的经验告诉我:SPFA这玩意很容易被卡. ...

  2. [小结] 中山纪念中学2018暑期训练小结(划掉)(颓废记)-Day10

    [小结] 中山纪念中学2018暑期训练小结(划掉)(颓废记)-Day10 各位看众朋友们,你们好,今天是2018年08月14日,星期二,农历七月初四,欢迎阅看今天的颓废联编节目 最近发生的灵异事件有 ...

  3. 2019中山纪念中学夏令营-Day20[JZOJ] T1旅游详解

    2019中山纪念中学夏令营-Day20[JZOJ] 提高组B组 Team_B组 T1 旅游 Time Limits: 2000 ms  Memory Limits: 262144 KB Descrip ...

  4. 2019中山纪念中学夏令营-Day21[JZOJ]

    2019中山纪念中学夏令营-Day21[JZOJ] 提高组(B组模拟赛)Team_B (由于本人太弱,并没有订正完题目) (题解大部分是从官方题解文件上摘来的) 日常膜拜大神:じやゆん蒟蒻 正文部分: ...

  5. LOJ #6035.「雅礼集训 2017 Day4」洗衣服 贪心

    这道题的贪心好迷啊~我们对于两个过程进行单独贪心,然后再翻转一个,把这两个拼起来.先说一下单独贪心,单独贪心的话就是用一个堆,每次取出最小的,并且把这个最小的加上他单次的,再放进去.这样,我们得到的结 ...

  6. 中山纪念中学培训DAY1

    哇啊啊啊啊啊啊$……$ 并不像说环境怎么样. $Day1$模拟赛 稳重一点选了提高$B$ 然后$5min$后: $t1$装压$DP$最短路 $t2$裸地贪心 $t3……$哇$t3$怎么做啊啊啊啊. $ ...

  7. 中山纪念中学培训杂题(难的都不在这里面qwq)

    来中山纪中半个月了,差不多就要结束了, 写一些之前考试能更正的题解吧,还有一些不是给人做的(比如IOI2018互测.. 备注:我不会的就没有放上来了,所有数学有关的基本上都死了. 所以这里的题目都是相 ...

  8. 2019中山纪念中学夏令营-Day1[JZOJ]

    T1 题目描述: 1999. Wexley接苹果(apple) (File IO): input:apple.in output:apple.out 时间限制: 1000 ms  空间限制: 1280 ...

  9. 【状压dp】Trie 树 @中山纪念中学20170304

    目录 Trie 树 PROBLEM 题目描述 输入 输出 样例输入 样例输出 SOLUTION CODE Trie 树 PROBLEM 题目描述 字母(Trie)树是一个表示一个字符串集合中所有字符串 ...

随机推荐

  1. docker 安装过程

  2. kettle文件以邮件附件的形式发送报告

    将从表中导出的excel文件以邮件附件的形式发送报告 step1: 导出文件file1.xls step2: add filename to result将文件添加到结果 step3: 发送邮件

  3. linux命令学习笔记(61):tree 命令

    shendu@shenlan:~$ tree 程序“tree”尚未安装. 您可以使用以下命令安装: sudo apt-get install tree shendu@shenlan:~$ sudo a ...

  4. C\C++的转义字符

    C\C++的转义字符 所有的ASCII码都可以用"\"加数字(一般是8进制数字)来表示.而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符, ...

  5. Agc003_E Sequential operations on Sequence

    传送门 题目大意 $1,2...n,n$个数从小到大排列,有$m$此操作,每次操作给定一个参数$x$,将当且数列作为循环节无限地展开下去,再取前$x$个作为新的数列,求最终的数列每个数出现的次数. $ ...

  6. bzoj1208Splay

    Splay查前驱后继 小tips:在bzoj上while(scanf)这种东西可以让程序多组数据一起跑 反正没加我就t了 #include<cstdio> #include<iost ...

  7. 【LeetCode】137. Single Number II

    题目: Given an array of integers, every element appears three times except for one. Find that single o ...

  8. BZOJ4364:[IOI2014]Wall

    浅谈区间最值操作与历史最值问题:https://www.cnblogs.com/AKMer/p/10225100.html 题目传送门:https://lydsy.com/JudgeOnline/pr ...

  9. android开发之数据库存取图片

    Android数据库中存取图片通常使用两种方式,一种是保存图片所在路径,二是将图片以二进制的形式存储(sqlite3支持BLOB数据类型).对于两种方法的使用,好像第二种方法不如第一种方法更受程序员欢 ...

  10. Poj 2299 Ultra-QuickSort(归并排序求逆序数)

    一.题意 给定数组,求交换几次相邻元素能是数组有序. 二.题解 刚开始以为是水题,心想这不就是简单的冒泡排序么.但是毫无疑问地超时了,因为题目中n<500000,而冒泡排序总的平均时间复杂度为, ...