当前位置: 首页 > news >正文

BZOJ2802 [Poi2012]Warehouse Store

恩。。。贪心来着。。。

我们先贪心当天能不能满足客户要求,如果能就尽量满足。

好了现在不能满足怎么办?作为一个无良的商家,可以退掉以前的订单。。。(现实中真的可以?、、、)

为了让当前剩余货物总量尽可能大,当然是退掉之前要求最高的订单喽,于是用堆维护一下就好了

注意long long什么的就好了

 

 1 /**************************************************************
 2     Problem: 2802
 3     User: rausen
 4     Language: C++
 5     Result: Accepted
 6     Time:600 ms
 7     Memory:5108 kb
 8 ****************************************************************/
 9  
10 #include <cstdio>
11 #include <queue>
12  
13 using namespace std;
14 typedef long long ll;
15 const int N = 250005;
16  
17 struct data {
18     int w, num;
19     data() {}
20     data(int _w, int _n) : w(_w), num(_n) {}
21      
22     inline bool operator < (const data &x) const {
23         return num == x.num ? w < x.w : num < x.num;
24     }
25 };
26  
27 int n, ans;
28 int a[N], b;
29 bool u[N];
30 ll now;
31 priority_queue <data> h;
32  
33 inline int read() {
34     int x = 0;
35     char ch = getchar();
36     while (ch < '0' || '9' < ch)
37         ch = getchar();
38     while ('0' <= ch && ch <= '9') {
39         x = x * 10 + ch - '0';
40         ch = getchar();
41     }
42     return x;
43 }
44  
45 int main() {    
46     int i;
47     n = read();
48     for (i = 1; i <= n; ++i)
49         a[i] = read();
50     for (i = 1; i <= n; ++i) {
51         b = read();
52         now += a[i];
53         if (now > b)
54             h.push(data(i, b)), now -= b, u[i] = 1, ++ans;
55         else if (!h.empty() && h.top().num > b) {
56             now += h.top().num - b, u[i] = 1, u[h.top().w] = 0;
57             h.pop(), h.push(data(i, b));
58         }
59     }
60     printf("%d\n", ans);
61     for (i = 1; i <= n; ++i)
62         if (u[i]) printf("%d ", i);
63     return 0;
64 }
View Code

 

转载于:https://www.cnblogs.com/rausen/p/4149895.html

相关文章:

  • 七、将你的docker镜像上传到docker hub
  • OpenGL tutorial资源在mac yosemite下的cmake生成工程问题
  • lizbaka的周记
  • 网市场云建站 v4.8 增加私有模版库,开放 Mysql 配置、在线客服源码
  • ActiveReports 报表应用教程 (3)---图表报表
  • 简单定义工程架构
  • IdentityServer4[1]:开篇
  • 小码哥iOS学习笔记第十天: __block和block内存管理
  • Java获取电脑IP、MAC、各种版本
  • Mysql索引分析:适合建索引?不适合建索引?【转】
  • scrapy中间件源码分析及常用中间件大全
  • [蓝桥] 算法提高 简单加法
  • WEB FARM NLB TEST
  • 第二周
  • Availability Check Control (Checking Rule )
  • [LeetCode] Wiggle Sort
  • [译]如何构建服务器端web组件,为何要构建?
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Android 控件背景颜色处理
  • Apache Pulsar 2.1 重磅发布
  • Effective Java 笔记(一)
  • ES6简单总结(搭配简单的讲解和小案例)
  • express + mock 让前后台并行开发
  • go append函数以及写入
  • JavaScript设计模式系列一:工厂模式
  • k8s如何管理Pod
  • Laravel 实践之路: 数据库迁移与数据填充
  • Object.assign方法不能实现深复制
  • spring-boot List转Page
  • Spring-boot 启动时碰到的错误
  • TypeScript迭代器
  • vue 配置sass、scss全局变量
  • 订阅Forge Viewer所有的事件
  • 对象管理器(defineProperty)学习笔记
  • 如何使用 JavaScript 解析 URL
  • 算法---两个栈实现一个队列
  • 微服务框架lagom
  • 项目实战-Api的解决方案
  • 新版博客前端前瞻
  • mysql面试题分组并合并列
  • 我们雇佣了一只大猴子...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #HarmonyOS:Web组件的使用
  • #includecmath
  • #vue3 实现前端下载excel文件模板功能
  • $NOIp2018$劝退记
  • (23)Linux的软硬连接
  • (4)事件处理——(7)简单事件(Simple events)
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (生成器)yield与(迭代器)generator
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】