传统_POJ-1442

题目链接:http://poj.org/problem?id=1442

堆的练手题。搞一个大根堆和一个小根堆,其余YY一下就好

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 #define lowbit(a) ((a)&(-a))
 7 #define max(a, b) ((a)>(b)?(a):(b))
 8 #define min(a, b) ((a)<(b)?(a):(b))
 9 #define MAXN 30010
10 #define PI 3.1415926
11 #define E 2.718281828
12 #define INF 0x777777f
13 typedef long long LL;
14
15 struct heap{
16     #define hMAXN 30010
17     int hCnt, a[hMAXN];
18     inline void clear(){hCnt = 0;}
19     inline void swp(int p, int q){a[q] = a[p];}
20     void swim(int p){
21         int tmp[] = {a[p]};
22         for (int q = p >> 1; q > 0; p = q, q >>= 1){
23             if (a[q] > tmp[0]){
24                 swp(q, p);
25             } else break;
26         } a[p] = tmp[0];
27     }
28     void sink(int p){
29         int tmp[] = {a[p]};
30         for (int q = p << 1; q <= hCnt; p = q, q <<= 1){
31             if (a[q] > a[q+1] && q < hCnt) q++;
32             if (a[q] < tmp[0]){
33                 swp(q, p);
34             } else break;
35         } a[p] = tmp[0];
36     }
37     void push(int x){a[++hCnt] = x; swim(hCnt);}
38     int pop(int p){int ret = a[p]; swp(hCnt, p); a[hCnt] = 0; hCnt--; swim(p); sink(p); return ret;}
39 } h1, h2;
40 int n, m, a[MAXN], b[MAXN];
41
42 int main(){
43     scanf("%d%d", &n, &m);
44     for (int i = 1; i <= n; i++)
45         scanf("%d", &a[i]);
46     for (int i = 1; i <= m; i++)
47         scanf("%d", &b[i]);
48     int t = 1;
49     for (int i = 1; i <= n; i++){
50         if (a[i] < -h1.a[1] && h1.hCnt){
51             int tmp = h1.pop(1);
52             h1.push(-a[i]);
53             h2.push(-tmp);
54         }
55         else {
56             h2.push(a[i]);
57         }
58         for ( ; i == b[t]; t++){
59             printf("%d\n", h2.a[1]);
60             h1.push(-h2.pop(1));
61         }
62     }
63     return 0;
64 }
时间: 2024-08-02 09:41:09

传统_POJ-1442的相关文章

云计算对于传统软件工程的影响

云计算对传统软件工程的影响 传统软件工程的概念 传统软件工程采用的一是结构化泛型,基本阶段按顺序如下:需求阶段.规格说明阶段.设计阶段.实现阶段.集成阶段.维护阶段.退役等,这是一种适用于代码量适中的传统软件开发方式. 而随着社会进步与技术发展,软件越来越复杂,计算越来越繁琐,代码量也越来越大,存储和处理的信息越来越多,软件规模也越来越大.而传统的结构化设计方法在大规模的软件的开发组织和维护方面困难重重,软件的复用性能也不好.于是发展出了云计算的概念. 云计算的概念 云计算是以数据为中心的一种数

敏捷软件开发VS传统软件工程

敏捷软件开发:又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新兴软件开发方法,是一种应对快速变化的需求的一种软件开发能力. 与传统软件工程相比,它们的具体名称.理念.过程.术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作.面对面的沟通(认为比书面的文档更有效).频繁交付新的软件版本.紧凑而自我组织型的团队.能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中"人"的作用. 本文将介绍敏捷软件开发的历史背景与发展,

X9BYOD与传统集群存储读写性能比较

今日,笔者将X9BYOD_v3.0.4版本分别安装在了采用传统集群存储策略的服务器上和采用X9BYOD存储策略的服务器上,然后采用相同的镜像分别生成一个具有相同规格的Windows 7 Home Basic虚拟机,来测试采用不同存储策略下虚拟机系统盘的IOPS性能. 在这里,笔者采用CrystalDiskMark 3.0.3这个软件来测试虚拟机中系统盘(即C盘)的IOPS.由于操作系统所在的系统盘的IOPS值直接影响了该虚拟机的用户体验,所以其IOPS的值是衡量用户体验的重要指标.通过Cryst

浅淡传统企业进入移动互联网的几种方式

浅淡传统企业进入移动互联网的几种方式 2013-07-11 17:22 来源:小马刀blog 1个评论 分享文章 A- A+ 文/小刀马 据有关机构统计,中国移动互联网呈现激增的发展态势,今年年中我国移动互联网用户数达4.6亿左右.除了用户规模快速上升之外,用户的使用强度也在增加.对于同时使用电脑和手机上网的用户而言,移动上网的时间已经达到每天3小时40分钟左右,占到每天平均上网时间的69%.移动互联网俨然已成为信息产业发展最快.竞争最激烈.创新最活跃的领域之一. 说起移动互联网,也就是这两年的

spring集成:如何用传统方式使用fastDFSClient

最近一直在摸索如何使用带有连接池的fastDFS客户端连接,在mvnrepository网站上找到了一个客户端,maven坐标如下: <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.25.4-RELEASE</version> </dependency> 可官

新辰:传统行业进军互联网 怎样颠覆网络获得新生?

今天新辰来谈谈传统行业应该怎么在互联网的思维下"活"起来,不知道你对美容美发有没有了解,新辰了解到.这一行业国内有7000亿的市场规模,单就美发而言.也有至少3000亿的规模,看看各个小区门口的理发门店就知道了. 那么,在互联网下,到底传统行业应该如何的产业定位.市场定位?如何去创造互联网新思维? 当然,还有非常多问题须要我们来思考啊,比方:跨界之后的理发店是什么样的形态?理发店的有可能成为什么样的平台?针对哪一类消费人群?提供哪几种产品组合?如何打造极致的用户体验?理发店的产品组合如

800Li 流媒体和传统http播放MP4和FLV对比

随着Web 应用发展的普及,在浏览器上播放媒体(视频.音频)的需求变得越来越普遍:很多的企业在尝试在网站加入多媒体内容,最常见的俩种方式: 1. 普通的 http 文件点播 ,直接通过网站前台 file upload 的方式上传文件MP4或者FLV,保存路径,客户端通过开源的flash 播放器 或者html5标签去播放服务器返回这个路径的视频文件,可能是mp4 或者FLV. 2. 加入流媒体服务器,通过流媒体来解决视频上传和视频播放的问题 web网站只解决 网页显示和网站逻辑.   下面将主要讲

DDD CQRS架构和传统架构的优缺点比较

明天就是大年三十了,今天在家有空,想集中整理一下CQRS架构的特点以及相比传统架构的优缺点分析.先提前祝大家猴年新春快乐.万事如意.身体健康! 最近几年,在DDD的领域,我们经常会看到CQRS架构的概念.我个人也写了一个ENode框架,专门用来实现这个架构.CQRS架构本身的思想其实非常简单,就是读写分离.是一个很好理解的思想.就像我们用MySQL数据库的主备,数据写到主,然后查询从备来查,主备数据的同步由MySQL数据库自己负责,这是一种数据库层面的读写分离.关于CQRS架构的介绍其实已经非常

2016年终分析(传统开发与网络时代的Java开发)

2016重大事件:(在此将2016年的开发称为传统开发) 1.乌镇互联网大会大会(大数据&云计算) 2.某东struts2安全漏洞 3.作为一个程序呀对于淘宝双11和双12的分析应该是最好的案例 ●国家发展战略:大数据+云计算->强势兴起 产生: Java应该学什么? 全栈工程师的提出(以后的方向)? 三块技能拼接: ●传统WEB开发+大数据&云计算+互联网技术 1.如果只是会传统WEB开发,包括所谓的开发框架(SSH,SSM)都是很难稳住工作岗位的! 2.大数据&云计算:技

[转] 传统 Ajax 已死,Fetch 永生

原谅我做一次标题党,Ajax 不会死,传统 Ajax 指的是 XMLHttpRequest(XHR),未来现在已被 Fetch 替代. 最近把阿里一个千万级 PV 的数据产品全部由 jQuery 的 $.ajax 迁移到 Fetch,上线一个多月以来运行非常稳定.结果证明,对于 IE8+ 以上浏览器,在生产环境使用 Fetch 是可行的. 由于 Fetch API 是基于 Promise 设计,有必要先学习一下 Promise,推荐阅读 MDN Promise 教程.旧浏览器不支持 Promis