博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ.4946.[NOI2017]蔬菜(贪心 离线)
阅读量:4340 次
发布时间:2019-06-07

本文共 1462 字,大约阅读时间需要 4 分钟。

因为有删除,考虑倒序处理某个p的询问。

那么每天删除xi的蔬菜就变成了每天运来xi的蔬菜。那么我们取当前最优的即可,早取晚取都一样,不需要留给后面取,还能给后面更优的留出空间。
这样就只需考虑现在了。于是我们能得到p为某个值的答案。多次询问显然需要递推。
而p-1与p相比只是少卖了m的蔬菜。把收益最小的m个删掉即可。

注意堆的插入删除顺序。

复杂度\(O(mqlogn)\)

还有一种求询问p的方法,是直接按蔬菜价值排序,然后每次找到其出现位置往前覆盖。如果某天已卖m则用并查集合并掉。

递推的时候sort一遍挨着删就可以。


感觉离散化后线段树可做,第一次购买收益单独算一个,每个节点维护区间当前蔬菜种数、蔬菜总量、每天减少量。

正序做,每一天就选m个最大的,然后减掉这m个。
在某种蔬菜消失的那天直接Delete掉这种蔬菜(如果剩下1个下一天则Delete掉拆开的第一次购买收益)。
这样复杂度还与m无关。
不过...算了我就想想...写了写就弃了。


//9424kb    1132ms#include 
#include
#include
#include
#include
//#define gc() getchar()#define MAXIN 400000#define gc() (SS==TT&&(TT=(SS=IN)+fread(IN,1,MAXIN,stdin),SS==TT)?EOF:*SS++)#define mp std::make_pair#define pr std::pair
#define MAX 100000typedef long long LL;const int N=1e5+3;int A[N],S[N],tot[N],dec[N],use[N];LL Ans[N];std::vector
v[N];std::queue
tmp;std::priority_queue
q1;std::priority_queue
,std::greater
> q2;char IN[MAXIN],*SS=IN,*TT=IN;inline int read(){ int now=0;register char c=gc(); for(;!isdigit(c);c=gc()); for(;isdigit(c);now=now*10+c-'0',c=gc()); return now;}int main(){ int n=read(),m=read(),Q=read(); for(int i=1; i<=n; ++i) { A[i]=read(),S[i]=read(),tot[i]=read(),dec[i]=read(); if(!dec[i]) v[MAX].push_back(i);//上界! else v[std::min(MAX,(tot[i]+dec[i]-1)/dec[i])].push_back(i); } LL ans=0; for(int i=MAX; i; --i) { for(int j=0,k,l=v[i].size(); j

转载于:https://www.cnblogs.com/SovietPower/p/9669394.html

你可能感兴趣的文章
HDU2819(KB10-E 二分图最大匹配)
查看>>
mysql主从复制、redis基础、持久化和主从复制
查看>>
文档工具GitBook使用
查看>>
两个链表的第一个公共节点
查看>>
知道这20个正则表达式,能让你少写1,000行代码
查看>>
MariaDB 主从同步与热备(14)
查看>>
推荐的 CSS 书写顺序
查看>>
NIO:与 Buffer 一起使用 Channel
查看>>
Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析
查看>>
MFC接收ShellExecute多个参数
查看>>
volatile和synchronized的区别
查看>>
RocketMQ介绍与云服务器安装
查看>>
并发量计算研究
查看>>
sqlserver安装相关问题
查看>>
iOS学习系列 - 利用ASIHTTPRequest实现异步队列
查看>>
Oracle11g创建表空间、创建用户、角色授权、导入导出表以及中文字符乱码问题...
查看>>
我对 Window.Open 的认识
查看>>
restore db from production copy
查看>>
jQuery源码的基础知识
查看>>
BZOJ 2049 [Sdoi2008]Cave 洞穴勘测(动态树)
查看>>