题目链接:http://abc062.contest.atcoder.jp/tasks/arc074_b

题意:从3*n个元素中删除n个元素,使得剩余元素中前n个元素的和减后n个元素的和最大;

思路:用b[i]存储前i个元素中选 n 个元素和能达到的最大值,c[i+1]存储后i个元素中选择 n 个元素能达到的最小值;

然后再遍历一次,取 max (b[i]-c[i+1]) 即为答案;

代码:

 #include <iostream>
#include <stdio.h>
#include <queue>
#define ll long long
using namespace std; const int MAXN = 3e5+;
const ll inf = 0x3f3f3f3f3f3f3f3f;
ll a[MAXN], b[MAXN], c[MAXN]; int main(void){
int n;
ll cnt1=inf, cnt2=-inf, ans1=, ans2=, ans=-inf;
scanf("%d", &n);
for(int i=; i<=*n; i++){
scanf("%lld", &a[i]);
}
priority_queue<ll, vector<ll>, greater<ll> > q1;
for(int i=; i<=*n; i++){
if(i <= n){
q1.push(a[i]);
ans1 += a[i];
b[i] = ans1;
continue;
}
ll cnt = q1.top();
if(cnt < a[i]){
q1.pop();
q1.push(a[i]);
ans1 -= cnt;
ans1 += a[i];
}
b[i] = ans1;
}
priority_queue<ll, vector<ll>, less<ll> > q2;
for(int i=*n; i>n; i--){
if(i > *n){
q2.push(a[i]);
ans2 += a[i];
c[i] = ans2;
continue;
}
ll cnt = q2.top();
if(cnt > a[i]){
q2.pop();
q2.push(a[i]);
ans2 -= cnt;
ans2 += a[i];
}
c[i] = ans2;
}
for(int i=n; i<=*n; i++){
ans = max(ans, b[i]-c[i+]);
}
cout << ans << endl;
return ;
}

atcode062D(预处理&优先队列)的更多相关文章

  1. ZOJ 3888 Twelves Monkeys (预处理+优先队列)

    题目链接:ZOJ 3888 Twelves Monkeys 题意:题目描写叙述起来比較绕,直接讲案例 9 3 3 9 1 6 1 4 1 6 7 2 输入n,m,q.n限制了你询问的年份,m台时光机, ...

  2. hihoCoder 1391 Countries【预处理+排序+优先队列】2016北京网络赛

    题目:http://hihocoder.com/problemset/problem/1391 题目大意: A和B两个国家互射导弹,每个国家都有一个防御系统,在防御系统开启的时间内可以将到达本国的导弹 ...

  3. 2015baidu复赛2 连接的管道(mst && 优先队列prim)

    连接的管道 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  4. HDU 1430 魔板(康托展开+BFS+预处理)

    魔板 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  5. hdu 1142 用优先队列实现Dijkstra

    之前很认真地看了用优先队列来实现Dijkstra这块,借鉴了小白书上的代码模板后,便拿这道题来试试水了.这道题的大意就是问你从地点1到地点2有多少条满足条件的路径(假设该路径经过 1->...- ...

  6. hdu1058丑数(优先队列、暴力打表)

    hdu1058 题意:当一个数只有2.3.5.7这四种质因数时(也可以一种都没有或只有其中几种),这个数就是丑数,输出第 n 个丑数是多少: 其实并没有发现hdu把这道题放在 dp 专题里的意图,我的 ...

  7. Problem 1016 咒文卷轴 优先队列+前缀和+rmq

    题目链接: 题目 Problem 1016 咒文卷轴 Time Limit: 3000 mSec Memory Limit : 131072 KB 问题描述 小Y 是一个魔法师,有一天他获得了一卷神秘 ...

  8. codeforce447 D SGU 548 贪心+优先队列

    codeforce447 D - DZY Loves Modification 题意:有一个n*m的矩阵,每次可以选择一行或者一列,可以得到这行或这列的所有元素sum的积分,然后使这一列/行的每一个元 ...

  9. hihoCoder 1391 Countries 【预处理+排序+堆】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)

    #1391 : Countries 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 There are two antagonistic countries, countr ...

随机推荐

  1. Nginx + Tomcat 应用证书启用 SSL

    第一部分 简述 - 附:相关概念 1 Nginx 是什么? - 2 Tomcat 是什么? - 3 SSL 是什么? Secure Sockets Layer,现在应该叫"TLS" ...

  2. JDBC通用方法实现

    在一些测试项目中会用到纯粹的jdbc操作数据库,下面提供统一的方法实现. import java.sql.CallableStatement; import java.sql.Connection; ...

  3. Swift - 修改导航栏的样式(文字颜色,背景颜色,背景图片)

    默认情况,导航栏UINavigationController的样式如下,如果想要使用代码修改样式也是比较简单的. 1,修改导航栏背景色 1 2 3 //修改导航栏背景色 self.navigation ...

  4. hihocoder(第十周)二叉树(前序中序推后续)递推实现

    题目 : 后序遍历 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在参与过了美食节之后,小Hi和小Ho在别的地方又玩耍了一阵子,在这个过程中,小Ho得到了一个非常有意思 ...

  5. 版本名称SNAPSHOT、alpha、beta、release、GA含义

    Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用.Beta:也是测试版,这个阶段的版本会一直加入新的功能.在Alpha版之后推出.RC:(Release Candida ...

  6. jboss7的JAX-WS客户端

    jboss版本 jboss-eap-6.1, 实际上就是jboss-as-7.x.fianal 本篇讨论使用jboss7自带的cxf库,使用wsdl文件生成和部署jax-ws的客户端程序. 首先明确一 ...

  7. ultraedit激活

    使用期满的解决办法:https://blog.csdn.net/dfh00l/article/details/52093630 下载:https://blog.csdn.net/qq_16093323 ...

  8. python-多线程1

    程序\进程\线程的关系: 程序(program) 一组功能集合的静态描述,程序至少有一个进程 进程(process) 进程是系统进行资源分配和调度的,他们拥有自己独立的空间,进程至少有一个线程 线程( ...

  9. PS 滤镜— — 镜头光晕

    clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread ...

  10. create-react-app使用的问题

    // 设置 npm config set registry https://registry.npm.taobao.org // 验证是否成功 npm config get registry或npm ...