http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1689

题意:

题意:

枚举终点,这样就确定路上的花费,接下来只需要计算进店的花费,用三个优先队列维护,q1存储必须要进的ci为1的k个店的最小进店花费,q2存储除了q1中的店之外还能进的店,q3存储暂时不能进的店。

 #include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector>
#include<stack>
#include<queue>
#include<cmath>
#include<map>
#include<set>
using namespace std;
typedef long long ll;
typedef pair<int,int> pll;
const int INF = 0x3f3f3f3f;
const int maxn = +; int n, k, t;
int a[maxn],b[maxn],c[maxn]; priority_queue<int> q1,q2,q3; int main()
{
//freopen("in.txt","r",stdin);
while(~scanf("%d%d%d",&n,&t,&k))
{
for(int i=;i<=n;i++) scanf("%d",&a[i]);
for(int i=;i<=n;i++) scanf("%d",&b[i]);
for(int i=;i<=n;i++) scanf("%d",&c[i]); ll sum1=,sum2=;
int ans=-;
for(int i=;i<=n;i++)
{
if(c[i])
{
q1.push(b[i]);
sum1+=b[i];
}
else
{
q2.push(b[i]);
sum2+=b[i];
}
if(q1.size()>k)
{
int tmp = q1.top();
sum1-=tmp;
sum2+=tmp;
q2.push(tmp);
q1.pop();
}
if(q1.size()<k) continue;
if(sum1+a[i]>t) continue;
ll left=t-sum1-a[i];
while(!q3.empty() && !q2.empty() && -q3.top()<q2.top()) //q2的最大花费和q3的最小花费交换
{
int tmp2=q2.top();
int tmp3=q3.top();
q2.pop();
q3.pop();
sum2-=tmp2;
sum2-=tmp3;
q2.push(-tmp3);
q3.push(-tmp2);
}
while(!q2.empty() && sum2>left) //如果q2里的进店花费超过了限制,则需要去掉一些
{
int tmp=q2.top();
q2.pop();
sum2-=tmp;
q3.push(-tmp);
}
while (!q3.empty() && left >= sum2 - q3.top()) //q2加上q3里较小的还是满足的
{
q2.push(-q3.top());
sum2 -= q3.top();
q3.pop();
}
if(sum1+sum2+a[i]<=t && k+(int)q2.size()>ans)
ans=k+(int)q2.size();
}
printf("%d\n",ans);
}
return ;
}

51nod 1689 逛街(优先队列)的更多相关文章

  1. 51nod:1689 逛街

    原题链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1689 一开始想枚举逛街的终点,然后开两个大根堆维护b值,分别 ...

  2. vijos1891 学姐的逛街计划(线性规划)

    P1891学姐的逛街计划 描述 doc 最近太忙了, 每天都有课. 这不怕, doc 可以请假不去上课.偏偏学校又有规定, 任意连续 n 天中, 不得请假超过 k 天. doc 很忧伤, 因为他还要陪 ...

  3. VR全景智慧城市——“海市蜃楼”般的逛街体验

    <史记·天官书>:"海旁蜃气像楼台:广野气成宫阙然." 海市蜃楼,简称蜃景,是一种因为光的折射和全反射而形成的自然现象,是地球上物体反射的光经大气折射而形成的虚像. 2 ...

  4. VR全景智慧城市:开启VR全景逛街新时代~

    VR全景,又被称为3D实景,是一种新兴的富媒体技术,其与视频,声音,图片等传统的流媒体大的区别是"可操作,可交互". 对于顾客体验来说,VR确实是对于实体店是一种颠覆性的创新,它既 ...

  5. “海市蜃楼”般的逛街体验——VR全景智慧城市常诚

    <史记·天官书>:"海旁蜃气像楼台:广野气成宫阙然." 海市蜃楼,简称蜃景,是一种因为光的折射和全反射而形成的自然现象,是地球上物体反射的光经大气折射而形成的虚像. 2 ...

  6. THUWC逛街记

    1/28 这次打算去THUWC划个水,就定了1/29中午的飞机.同校有几个同学去PKUWC,求稳搭今天的飞机.中午时候听说今天飞长沙的飞机全都取消了,明天有没有也不好说( 事实证明29号有飞机:( ) ...

  7. Vijos1891 学姐的逛街计划 【费用流】*

    Vijos1891 学姐的逛街计划 描述 doc 最近太忙了, 每天都有课. 这不怕, doc 可以请假不去上课. 偏偏学校又有规定, 任意连续 n 天中, 不得请假超过 k 天. doc 很忧伤, ...

  8. 刷题总结——学姐的逛街计划(vijos1891费用流)

    题目: doc 最近太忙了, 每天都有课. 这不怕, doc 可以请假不去上课.偏偏学校又有规定, 任意连续 n 天中, 不得请假超过 k 天. doc 很忧伤, 因为他还要陪学姐去逛街呢. 后来, ...

  9. [vijos1891]学姐的逛街计划

                                                                     学姐的逛街计划 描述 doc 最近太忙了, 每天都有课. 这不怕, d ...

随机推荐

  1. rgferg

    dfgsdfg fdvgdsafg fgdfgdfg

  2. linux利用scp远程上传下载文件/文件夹

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度. 当你服务 ...

  3. 【视频】使用fiddler开发工具进行新架构页面本地调试

    [视频]使用fiddler开发工具进行新架构页面本地调试,视频没录制好,有些部分比较模糊...

  4. svn钩子

    #!/bin/sh #修改为服务编码 export.UTF-8 #Set variable REPOS="$1" REV="$2" #svn安装脚本目录 SVN ...

  5. 建议使用nginx配合uwsgi,

    试试gunicorn+supervisor+nginx. gunicorn是Python实现的的Web server,配置也比较简单. supervisor也是Python实现的,它用于进程管理. 这 ...

  6. DOM EventListener

    向元素添加事件句柄的语法:element.addEventListener(event, function, useCapture); 第一个参数是事件的类型,如click或者mousedown,注意 ...

  7. shell脚本作为cgi程序--以web版man为例

    man.cgi源码 #! /bin/sh eval `sh proccgi.sh $*` echo "Content-type: text/html" echo echo echo ...

  8. log buffer space等待事件

    最近,我们有台服务器在delete操作期间发现一直在等待log buffer space,其他节点就没与这个问题.经查,向重做缓冲区上写入重做记录的进程,为了确保拥有重做缓冲区内必要的空间,需要获得r ...

  9. 12: nginx原理及常用配置

    1.1 nginx基本介绍 1.nginx高并发原理( 多进程+epoll实现高并发 ) 1. Nginx 在启动后,会有一个 master 进程和多个相互独立的 worker 进程. 2. 每个子进 ...

  10. k8s (kubernetes) 代码分析

    简易入门 结构图: debug 先了解 etcd API源码分析 API server 是中心. https://www.jianshu.com/p/88c6ed78b668 $ git ls-fil ...