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

制作招商加盟网站广西桂林天气预报15天

制作招商加盟网站,广西桂林天气预报15天,阿里云建站套餐,电子商务网站建设与维护读书心得AT_abc407_e [ABC407E] Most Valuable Parentheses 洛谷题目传送门 ATcoder题目传送门 题目描述 给你一个长度为 2N2N2N 的数列 AAA。 定义一个长度为 2N2N2N 的括号序列 sss 的得分: 对于所有 sis_isi​),Ai←0A_i\leftarrow 0Ai​←0&#xff1b…

AT_abc407_e [ABC407E] Most Valuable Parentheses

洛谷题目传送门

ATcoder题目传送门

题目描述

给你一个长度为 2N2N2N 的数列 AAA

定义一个长度为 2N2N2N 的括号序列 sss 的得分:

  • 对于所有 si=s_i=si=)Ai←0A_i\leftarrow 0Ai0
  • 得分为上述操作后 AAA 中所有元素之和。

请求出对于一个长为 2N2N2N 的合法的括号序列 sss,它的得分的最大值。一个括号序列是合法的当且仅当它可以通过多次删去子段 () 变为空串。

输入格式

多组数据。第一行一个整数 T(1≤T≤500)T(1\le T\le 500)T(1T500) 表示数据组数。

对于每组数据:
第一行一个整数 N(1≤N≤2×105)N(1\le N\le 2\times 10^5)N(1N2×105)
接下来 2N2N2N 行,每行一个数字,依次为 A1,A2,⋯,A2N(0≤Ai≤109)A_1,A_2,\cdots,A_{2N}(0\le A_i\le 10^9)A1,A2,,A2N(0Ai109)

保证单个测试点内 ∑N≤2×105\sum N\le 2\times 10^5N2×105

输出格式

对于每组数据,输出一行一个整数表示答案。***

输入输出样例 #1

输入 #1

2
3
400
500
200
100
300
600
6
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000

输出 #1

1200
6000000000

说明/提示

样例解释 1

在第一组数据中,s=s=s=(())() 的得分为 400+500+0+0+300+0=1200400+500+0+0+300+0=1200400+500+0+0+300+0=1200。可以证明这是可能获得的最大的分,故答案为 120012001200

如第二组数据所示,答案可能超出 32 位整数的表示范围。

By @chenxi2009

思路详解

思路引入

首先,我们先来思考一下如何判断合法的括号序列。首先显然左括号数量要等于右括号数量,但是这还不够。回想我们之前做的判断合法括号序列的题,我们还可以得出一个条件:∀iϵ[1,n],sum(,i>=sum),i\forall i\epsilon[1,n],sum_{(,i}>=sum_{),i}iϵ[1,n],sum(,i>=sum),i。这是很显然的,因为左右括号要对应。

现在我们来考虑一下如何求解这道题。根据NNN的范围,我们发现1维dpdpdp不好转移,那就只能2维dpdpdp了,可是2维dpdpdp会超。所以我们先将dpdpdp放一放,考虑能否用贪心

首先,我们肯定不能考虑让左括号尽量多,因为我们又不是求左括号的最大值。我们想要的是左括号上的值尽量大,那我们先尽量选右括号,当右括号多了的时候,我们在从区间中选取最大值,将其改为最括号即可。这样得到的答案一定是最优的,而且我们还同时维护了括号序列合法。

过程分析

我们的具体过程如下:

  1. 先建立一个大根堆维护最大值。
  2. 从1开始枚举iii,将a_{i}入堆,假如当前的右括号数量+1大于了左括号数量,则选取最大值,将其改为左括号。
  3. 否则将当前设为右括号。

code

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll N=4e5+5;
ll T;
ll a[N];
int main(){
//先来思考如何判定一个括号序列是合法的
//首先肯定'(',')'要各占一半,但这个条件显然不够
//还有就是对于任意i,都要满足在1-i中左括号的和大于等于右括号的和
//那对于每个区间,我们让左括号尽量多是不对的,因为我们无法保证后面的
//那我们就尽量让右括号多,这样最基本的左括号最多,我们在这里将左括号给最大值即可cin>>T;while(T--){ll n;cin>>n;n*=2;ll ans=0;for(ll i=1;i<=n;i++)cin>>a[i];ll js=0;priority_queue<ll>q;for(ll i=1;i<=n;i++){q.push(a[i]);if(js+1>i-(js+1)){ans+=q.top();q.pop();}else js++;}cout<<ans<<'\n';}return 0;
}
http://www.dtcms.com/a/498295.html

相关文章:

  • 便宜网站制作微网站怎么做的好
  • 做网站用的各种图标大全太原阳性确诊
  • 个人做地方网站网站手机端和电脑端
  • 做翻译兼职的网站wordpress新手主题
  • 发布网站的流程百度用户服务中心人工电话
  • 建设网站那个好旅游必去的10个地方
  • 网站建设网络推广西安网站建设 至诚
  • 深圳网站开发建设黄石本土做网站的公司
  • 网站专题素材营销型企业网站建设应遵守的原则
  • 网站建设一般分为几个步骤罗湖商城网站设计费用
  • 全面的基础微网站开发产品设计公司网站
  • 国外的平面设计网站做视频链接哪个网站好
  • php电影播放网站开发论坛的网站开发项目
  • 集团网站建设费用新网站建设代理商
  • 烟台城发建设集团网站做云词图的网站
  • 住房建设官方网站wordpress pshow
  • 网站建设的基本术语国内比较好用的建筑案例网站
  • 织梦 网站地图qt网站开发
  • 中山网站制作专业营销型网站建设要求
  • 网站什么时候做等保工厂货源网
  • 常德市做网站的公司怎么做网站的寄生
  • 湖南建立网站营销策划汉中专业网站建设公司
  • 阳江网站建设 公司价格如何提升学历
  • 泰兴网站建设价格商城网站模板下载
  • 网站降权怎么救家庭农场网站建设
  • 网站 需求文档网站建设的基本步骤是哪些
  • 做网站可以赚钱么固镇网站建设哪家好?
  • 网站建设及网站推广asp网站建设 文献综述
  • 成都网站建设企业 排名建筑业招聘网站
  • goole官网seo免费诊断电话