HDU 4122:Alice's mooncake shop RMQ(2011 Asia Fuzhou Regional Contest )
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 )相关推荐
- 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 + ...
- 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 ...
- 笔试算法题(58):二分查找树性能分析(Binary Search Tree Performance Analysis)
议题:二分查找树性能分析(Binary Search Tree Performance Analysis) 分析: 二叉搜索树(Binary Search Tree,BST)是一颗典型的二叉树,同时任 ...
- 《用户至上:用户研究方法与实践(原书第2版)》一 3.4 法律层面的考虑
本节书摘来自华章出版社<用户至上:用户研究方法与实践(原书第2版)>一书中的第3章,第3.4节,作者 Understanding Your Users: A Practical Guide ...
- Redis:缓存问题之数据不一致(更新数据库时 主动更新)
Redis:缓存问题之数据不一致(更新数据库时 主动更新) 关键词 数据源不一样(缓存和db操作非原子性) 1.延时双删 -> 2.TTL -> 3.缓存删除失败记录到日志中,利用脚本提取 ...
- Android 系统(59)---Android开发:Handler异步通信机制全面解析(包含Looper、Message Queue)
Android开发:Handler异步通信机制全面解析(包含Looper.Message Queue) 前言 最近刚好在做关于异步通信的需求,那么,今天我们来讲解下Android开发中的Handler ...
- 《计算机系统:核心概念及软硬件实现(原书第4版)》——1.4数据库系统
本节书摘来自华章计算机<计算机系统:核心概念及软硬件实现(原书第4版)>一书中的第1章,第1.4节,作者:[美] J. 斯坦利·沃法德(J. Stanley Warford)著, 更多章节 ...
- 嵌入式知识-ARM裸机-学习笔记(2):利用GPIO来控制LED(附mkv210_image.c文件解析)
嵌入式知识-ARM裸机-学习笔记(2):利用GPIO来控制LED(附mkv210_image.c文件解析) 首先声明该博客是针对朱有鹏老师的嵌入式课程进行笔记的总结. 一.通过GPIO控制点亮LED( ...
- 《用户至上:用户研究方法与实践(原书第2版)》一2.4 理解用户
本节书摘来自华章出版社<用户至上:用户研究方法与实践(原书第2版)>一书中的第2章,第2.4节,作者 Understanding Your Users: A Practical Guide ...
- 《用户至上:用户研究方法与实践(原书第2版)》一1.1 什么是用户体验
本节书摘来自华章出版社<用户至上:用户研究方法与实践(原书第2版)>一书中的第1章,第1.1节,作者 Understanding Your Users: A Practical Guide ...
最新文章
- 最新:2020年度陈嘉庚科学奖出炉!施一公获生命科学奖
- 学习对象对神经网络迭代次数的影响
- linux——第三方软件仓库的搭建
- rstudio python_如虎添翼:用Python与C++扩展R语言的应用场景
- SAP Spartacus ProductOccModule
- 转:Linux网络IO并行化技术概览
- 对Gson解析的理解
- 改革春风吹满地,安卓新系统Q上线腾讯WeTest
- 华盛顿大学研发PaperID技术,可在纸上印刷RFID电子标签
- java中对于框架的理解_接触Java项目一周后对一些基本框架的理解 | 学步园
- 概率论 方差公式_2020考研数学:概率论核心考点与常见题型(上)
- 单片机交通灯设计实例
- 【中医学】8 中药-3
- 专访李智慧:架构是最高层次的规划和难以改变的决定
- 机器学习笔记 - EfficientNet论文解读
- 【WeNews】三胞债务重组方案出炉 650亿元金融债务如何化解
- @WebFilter在SpringBoot无效的原因分析和解决
- 热点丨关闭代扣通道,影响的是谁?
- 罗永浩、360 回应大规模裁员;阿里公布双 11 技术数据;苹果供应商受重挫 | 极客头条...
- IBM AIX 入门培训
热门文章
- 为极致的视频体验而设计:facebook新一代存储平台Bryce Canyon架构
- java jdbc close原理_Java开发笔记(一百四十六)JDBC的应用原理
- jenkins的安装与使用
- win10虚拟机搭建Hadoop集群(已完结)
- 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时6
- 关于Eclipse的常用快捷键
- Java编程风格与命名规范整理(转载)
- 关于C#窗体程序dataGridView控件的用法
- hadoop2.2.0 core-site.xml--global properties
- loj 1308(点双连通分量应用)