题目很长,有点恶心,但实际上是个单调队列

没搞出来,题解 https://blog.csdn.net/lvshubao1314/article/details/46910271

#include<bits/stdc++.h>
#define ll long long
using namespace std; ll times[],num[],cost[],q[];//订单时间,订单数量,每个时间做蛋糕的代价,单调队列
ll n,m,T,S;//n个订单,m个做蛋糕时间(连续的),蛋糕寿命,每小时保存代价
map<string,int>mp;
int sum[]; void init(){
mp["Jan"]=,mp["Feb"]=,mp["Mar"]=;
mp["Apr"]=,mp["Mar"]=,mp["Jun"]=;
mp["Jul"]=,mp["Aug"]=,mp["Sep"]=;
mp["Oct"]=,mp["Nov"]=,mp["Dec"]=;
sum[]=,sum[]=,sum[]=sum[]+,sum[]=sum[]+,sum[]=sum[]+,sum[]=sum[]+,sum[]=sum[]+;
sum[]=sum[]+,sum[]=sum[]+,sum[]=sum[]+,sum[]=sum[]+,sum[]=sum[]+;
}
int get(int y,int m,int d,int t)
{
int ans=;
for(int i=; i<y; i++)
{
if((i%==&&i%!=)||i%==)
ans+=;
else
ans+=;
}
if((y%==&&y%!=)||y%==)
{
ans+=sum[m-];
if(m->=)ans++;
}
else
{
ans+=sum[m-];
}
ans+=(d-);
return ans*+t;
} int main(){
init();
while(scanf("%lld%lld",&n,&m),n){
for(int i=;i<n;i++){
int year,day,t;
char mon[];
scanf("%s%d%d%d%lld",mon,&day,&year,&t,&num[i]);
times[i]=get(year,mp[mon],day,t);
}
scanf("%lld%lld",&T,&S);
int tail=,head=,k=;
ll cnt=;
for(int i=;i<m;i++){
scanf("%lld",&cost[i]);
while(head<tail && cost[q[tail-]]+S*(i-q[tail-])>=cost[i])tail--;//单调队列不是按照cost排序,而是按照制作成本+保存成本从小到大排序
q[tail++]=i;
while(i==times[k]){
while(head<tail- && i-q[head]>T) head++;
cnt+=num[k]*(cost[q[head]]+S*(i-q[head]));
k++;
}
}
printf("%lld\n",cnt);
}
}

hdu4122的更多相关文章

  1. hdu4122(单调队列)

    处理题目中给的日期,然后用单调队列维护 Alice's mooncake shop Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32 ...

  2. hdu4122 制作月饼完成订单的最小花费

    题意:       有一个加工厂加工月饼的,这个工厂一共开业m小时,2000年1月1日0点是开业的第一个小时,每个小时加工月饼的价钱也不一样,然后每个月饼的保质期都是t天,因为要放在冰箱里保存,所以在 ...

随机推荐

  1. mysql5.6下载及安装(超级详细)

    经过本人的实验,验证这些东西都是OK的 博客原文地址:http://www.cnblogs.com/Percy_Lee/p/5282187.html

  2. java连接数据库读取数据出现乱码

    因为这是通用编码,像中国通常使用的GBK.GB2312.Big5等只是针对中文而言,但是对其他文字就不适用了,为了使得这个问题的解决具有文字编码通用性,所以我这里设定了UTF8这个编码. 编码一致性涉 ...

  3. Gulp小记

    安装 总的来说,玩gulp的流程是这样的: 安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gulpfile.js -> 运行任务 ...

  4. Java基础-Eclipse第三方安装包管理工具之Maven

    Java基础-Eclipse第三方安装包管理工具之Maven 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩过Linux的小伙伴应该都知道yum吧,我们只要把搭建好的yum仓库配 ...

  5. ECharts图表引用json数据

    来讲两个图表,一个折线图,一个饼图. 先来看看效果图: 现在来看看代码,先来折线图,后台: (这里的后台太麻烦了,写的太多.可以使用Linq的方式,Linq比较简单写的也少.参考我的这篇文章的2018 ...

  6. .NET MVC中的ActionResult

    一  摘要 本文介绍了ASP.NET MVC中的ActionResult,本节主要介绍 EmptyResult / Content Result /JavaScriptResult /JsonResu ...

  7. PHP7 学习笔记(七)如何使用zephir编译一个扩展记录

    一.zephir 编译遇到的错误 安装 git clone https://github.com/phalcon/zephir $ cd zephir $ ./install-json $ ./ins ...

  8. 转--python -- 收发邮件

    官方 import smtplib from email.mime.text import MIMEText from email.header import Header # 发送邮箱服务器 smt ...

  9. VS新建项目工具箱图标丢失问题

    (1)在电脑里搜索*.tbd文件(2)建一个项目,把需要的工具箱图标加载上,退出 VS. (3)复制一份toolbox.tbd,重命名为toolbox_reset.tbd 然后以后新建项目就可以了.这 ...

  10. Java SE 之 DAO层接口设计思想

    用图说话 好处 1.只需要定义好IBaseDao的接口方法,并只需要实现BaseDaoImpl的方法,而具体的业务类和业务类/接口的方法的基本方法(IBaseDao已定义的)并不需要再考虑实现. 2. ...