Alice's mooncake shop

题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=4122

题意:

Alice开了一家24小时营业的月饼店,2000年1月1日0点是第一个小时,每个整点可以造月饼且造价不同,造的月饼可以当天卖掉或者储存T天(每天每个月饼花费S元),现在Alice有一些订单,求满足这些订单的最少成本。

题解:

先把每天制造一个月饼的成本加上S*( n-i ),然后第 i 天的成本就是[i-T,i]间的最小值减去i*S

代码

#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;
const int N=2501;
const int M=1e5+1;
int mmax(int x,int y)
{return x>y?x:y;
}
long long mmin(long long x,long long y)
{return x<y?x:y;
}
long long dpmin[M][20],need[N],S;
bool Leap_Year(int x)
{if(x%400==0||(x%4==0&&(x%100!=0)))return true;return false;
}
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},time[N];
int Find_Time(int y,int m,int d,int h)
{int sum=0;for(int i=2000;i<y;++i){if(Leap_Year(i))sum+=366;else sum+=365;}for(int i=1;i<m;++i){sum+=month[i];if(i==2&&Leap_Year(y))sum++;}sum+=(d-1);sum*=24;sum+=h+1;return sum;
}
long long cost[M];
string s;
void Make_Rmq(int m)
{for(int i=1;i<=m;++i){dpmin[i][0]=cost[i]+S*(long long)(m-i);}for(int j=1;(1<<j)<=m;++j)for(int i=1;i+(1<<j)-1<=m;++i){dpmin[i][j]=mmin(dpmin[i][j-1],dpmin[i+(1<<j-1)][j-1]);}
}
long long Get_Rmq(int u,int v)
{int k=0;while((1<<k+1)<=v-u+1)k++;return mmin(dpmin[u][k],dpmin[v-(1<<k)+1][k]);
}
void solve()
{int n,m,mon,d,y,h,T;while(~scanf("%d%d",&n,&m)&&(n||m)){for(int i=1;i<=n;++i){cin>>s;if(s=="Jan")mon=1;else if(s=="Feb")mon=2;else if(s=="Mar")mon=3;else if(s=="Apr")mon=4;else if(s=="May")mon=5;else if(s=="Jun")mon=6;else if(s=="Jul")mon=7;else if(s=="Aug")mon=8;else if(s=="Sep")mon=9;else if(s=="Oct")mon=10;else if(s=="Nov")mon=11;else mon=12;scanf("%d%d%d%lld",&d,&y,&h,&need[i]);time[i]=Find_Time(y,mon,d,h);}scanf("%d%lld",&T,&S);for(int i=1;i<=m;++i){scanf("%lld",&cost[i]);}Make_Rmq(m);long long res=0;for(int i=1;i<=n;++i){res+=Get_Rmq(mmax(1,time[i]-T),time[i])*need[i]-(long long)(m-time[i])*S*need[i];}printf("%lld\n",res);}
}
int main()
{solve();    return 0;
}

转载于:https://www.cnblogs.com/kiuhghcsc/p/5745709.html

HDU 4122:Alice's mooncake shop RMQ(2011 Asia Fuzhou Regional Contest )相关推荐

  1. HDU 4059 The Boss on Mars (容斥)(2011 Asia Dalian Regional Contest)

    The Boss on Mars 思路 显然我们可以求得∑i=1ni4=6n5+15n4+10n3−n30\sum_{i = 1} ^{n} i ^ 4 = \frac{6n^5 + 15n^4 + ...

  2. HDU 4122 Alice's mooncake shop 单调队列优化dp

    Alice's mooncake shop Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem ...

  3. 笔试算法题(58):二分查找树性能分析(Binary Search Tree Performance Analysis)

    议题:二分查找树性能分析(Binary Search Tree Performance Analysis) 分析: 二叉搜索树(Binary Search Tree,BST)是一颗典型的二叉树,同时任 ...

  4. 《用户至上:用户研究方法与实践(原书第2版)》一 3.4 法律层面的考虑

    本节书摘来自华章出版社<用户至上:用户研究方法与实践(原书第2版)>一书中的第3章,第3.4节,作者 Understanding Your Users: A Practical Guide ...

  5. Redis:缓存问题之数据不一致(更新数据库时 主动更新)

    Redis:缓存问题之数据不一致(更新数据库时 主动更新) 关键词 数据源不一样(缓存和db操作非原子性) 1.延时双删 -> 2.TTL -> 3.缓存删除失败记录到日志中,利用脚本提取 ...

  6. Android 系统(59)---Android开发:Handler异步通信机制全面解析(包含Looper、Message Queue)

    Android开发:Handler异步通信机制全面解析(包含Looper.Message Queue) 前言 最近刚好在做关于异步通信的需求,那么,今天我们来讲解下Android开发中的Handler ...

  7. 《计算机系统:核心概念及软硬件实现(原书第4版)》——1.4数据库系统

    本节书摘来自华章计算机<计算机系统:核心概念及软硬件实现(原书第4版)>一书中的第1章,第1.4节,作者:[美] J. 斯坦利·沃法德(J. Stanley Warford)著, 更多章节 ...

  8. 嵌入式知识-ARM裸机-学习笔记(2):利用GPIO来控制LED(附mkv210_image.c文件解析)

    嵌入式知识-ARM裸机-学习笔记(2):利用GPIO来控制LED(附mkv210_image.c文件解析) 首先声明该博客是针对朱有鹏老师的嵌入式课程进行笔记的总结. 一.通过GPIO控制点亮LED( ...

  9. 《用户至上:用户研究方法与实践(原书第2版)》一2.4 理解用户

    本节书摘来自华章出版社<用户至上:用户研究方法与实践(原书第2版)>一书中的第2章,第2.4节,作者 Understanding Your Users: A Practical Guide ...

  10. 《用户至上:用户研究方法与实践(原书第2版)》一1.1 什么是用户体验

    本节书摘来自华章出版社<用户至上:用户研究方法与实践(原书第2版)>一书中的第1章,第1.1节,作者 Understanding Your Users: A Practical Guide ...

最新文章

  1. 最新:2020年度陈嘉庚科学奖出炉!施一公获生命科学奖
  2. 学习对象对神经网络迭代次数的影响
  3. linux——第三方软件仓库的搭建
  4. rstudio python_如虎添翼:用Python与C++扩展R语言的应用场景
  5. SAP Spartacus ProductOccModule
  6. 转:Linux网络IO并行化技术概览
  7. 对Gson解析的理解
  8. 改革春风吹满地,安卓新系统Q上线腾讯WeTest
  9. 华盛顿大学研发PaperID技术,可在纸上印刷RFID电子标签
  10. java中对于框架的理解_接触Java项目一周后对一些基本框架的理解 | 学步园
  11. 概率论 方差公式_2020考研数学:概率论核心考点与常见题型(上)
  12. 单片机交通灯设计实例
  13. 【中医学】8 中药-3
  14. 专访李智慧:架构是最高层次的规划和难以改变的决定
  15. 机器学习笔记 - EfficientNet论文解读
  16. 【WeNews】三胞债务重组方案出炉 650亿元金融债务如何化解
  17. @WebFilter在SpringBoot无效的原因分析和解决
  18. 热点丨关闭代扣通道,影响的是谁?
  19. 罗永浩、360 回应大规模裁员;阿里公布双 11 技术数据;苹果供应商受重挫 | 极客头条...
  20. IBM AIX 入门培训

热门文章

  1. 为极致的视频体验而设计:facebook新一代存储平台Bryce Canyon架构
  2. java jdbc close原理_Java开发笔记(一百四十六)JDBC的应用原理
  3. jenkins的安装与使用
  4. win10虚拟机搭建Hadoop集群(已完结)
  5. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时6
  6. 关于Eclipse的常用快捷键
  7. Java编程风格与命名规范整理(转载)
  8. 关于C#窗体程序dataGridView控件的用法
  9. hadoop2.2.0 core-site.xml--global properties
  10. loj 1308(点双连通分量应用)