正题

题目链接:https://atcoder.jp/contests/agc048/tasks/agc048_b


题目大意

长度为nnn的合法括号序列可以包含[...][...][...]和(...)(...)(...)。

如果在第iii个位置是′(′'\ (\ '′ ( ′ 或者 ′)′'\ )\ '′ ) ′那么可以获得aia_iai​的权值,否则获得bib_ibi​的权值。

求一个合法的括号序列使得权值最大。


解题思路

首先对于每对匹配的括号肯定是一奇一偶的,有一个结论就是只要两种括号的奇和偶数上括号的个数相同,那么就一定有一种合法匹配。

大致的理解方法就是,对于每一种方案至少存在一对相邻的同种括号,否则就不满足以上性质,然后就可以将这对括号删去。重复以上过程就可以证明该结论

那么考虑贪心选取,对于每个位置我们先默认选择小括号,那么如果转换的话就会获得wi=ai−biw_i=a_i-b_iwi​=ai​−bi​的价值。然后每次选取一奇一偶的wiw_iwi​,把奇偶的wiw_iwi​分开排序选取即可。

时间复杂度O(nlog⁡n)O(n\log n)O(nlogn)


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#define ll long long
using namespace std;
const ll N=1e5+10;
ll n,a[N],b[N],sum,ans;
vector<ll > v[2];
int main()
{scanf("%lld",&n);for(ll i=1;i<=n;i++)scanf("%lld",&a[i]);for(ll i=1;i<=n;i++)scanf("%lld",&b[i]),sum+=b[i];for(ll i=1;i<=n;i++)v[i&1].push_back(a[i]-b[i]);sort(v[0].begin(),v[0].end());sort(v[1].begin(),v[1].end());ans=sum;for(ll i=v[0].size()-1;i>=0;i--)sum+=v[0][i]+v[1][i],ans=max(ans,sum);printf("%lld\n",ans);
}

ATcoder-[AGC048B]Bracket Score【结论,贪心】相关推荐

  1. 2018.09.21 atcoder An Invisible Hand(贪心)

    传送门 简单贪心啊. 这题显然跟t并没有关系,取差量最大的几组买入卖出就行了. 于是我们统计一下有几组差量是最大的就行了. 代码: #include<bits/stdc++.h> #def ...

  2. ARC120D Bracket Score 2 (模拟)

    题面 给一个长度为 2N2N2N 的序列 AAA,定义一个长度为 2N2N2N 的合法括号序列的 得分(score) 为: 对于每对配对的括号 i,ji,ji,j,∣Ai−Aj∣|A_i-A_j|∣A ...

  3. Atcoder题解与视频集

    开启Atcoder之路 开启Atcoder之路_sortmin的博客-CSDN博客_atcoder怎么用 atcoder心得 atcoder心得_404REN的博客-CSDN博客_atcoder怎么用 ...

  4. [CF/AT]各大网站网赛 体验部部长第一季度工作报告

    文章目录 CodeForces #712 (Div. 1)--1503 A. Balance the Bits B. 3-Coloring C. Travelling Salesman Problem ...

  5. java正则表达式匹配数字范围_在java中怎么利用正则表达式匹配数字

    在java中怎么利用正则表达式匹配数字 发布时间:2020-12-03 17:47:12 来源:亿速云 阅读:58 作者:Leah 在java中怎么利用正则表达式匹配数字?针对这个问题,这篇文章详细介 ...

  6. Hive分组 条件 分区排序 CLUSTER BY, Sort By,DISTRIBUTE BY

    建表语句 create table BD34 (id int,name string, score int,sex int,age int) row format delimited fields t ...

  7. [总结]2019年10月 OI学习/刷题记录

    10月份记录! 2019/10/1 UOJ #74. [UR #6]破解密码 Hash+分类讨论 UOJ #75. [UR #6]智商锁 Matrix-Tree定理+随机化 UOJ #76. [UR ...

  8. NOI2020训练日志

    每天写日志能让自己清楚的知道自己在摸鱼/kk 8.13 打了两天UNR,交互不会交互,提答不会提答,哈希也不会哈希 真的菜到爆炸- 8.9 模拟赛 被打爆了 T1:容斥+多项式+齐次线性递推 T2: ...

  9. 决策回归树回归算法30

    1.决策回归树原理概述 与分类树一样 裂分指标,使用的是MSE.MAE MSE(y,y^)=1nsamples∑i=0nsamples−1(yi−y^i)2\text{MSE}(y, \hat{y}) ...

最新文章

  1. QueryPerformanceFrequency用法--Windows高精度定时计数
  2. 【ccf-csp201512-5】矩阵
  3. java数组最大下标_【Java视频教程】day09-面向对象
  4. 用Python进行数据探索,探索竞赛优胜方案
  5. python sorted list 包含元组 字典 的多列排序
  6. solr mysql 速度_提高solr的搜索速度
  7. Go基础-核心特性和前景
  8. 机器人操作系统ROS(一):发布接收消息
  9. Rust:trait中 关联类型、泛型参数、默认参数混用
  10. Windows 修改注册表实现键位修改
  11. 记录一下落地网关soul(shenyu)过程中的一些实践
  12. C语言学习笔记《带你学C带你飞》P41-P61
  13. 添加小度在家显示无法连接服务器,小度在家突然连不上网了
  14. 试验设计方法与Design-Expert软件应用目录
  15. 基于Springboot和VUE的聊天项目,仿PC端微信
  16. 在浏览器上打开、预览Excel xlsx表格文件
  17. 飞行棋程序(附源码)
  18. 计算机财务管理系统的建立,第13章 计算机财务管理系统的建立.ppt
  19. Calibre for Mac v5.20.0 中文版 电子书阅读管理工具
  20. LRUCache简单实现

热门文章

  1. html li 做瀑布流,js实现瀑布流效果(自动生成新的内容)
  2. python笔试题 github_简单的python面试题,居然
  3. ufo帧率测试网站_一加7游戏续航测试 满电开始玩猜猜能玩多久
  4. mongodb可视化工具 linux,Linux中安装启动MongoDB与可视化工具
  5. pandas用均值填充nan_Pandas学习笔记(三)
  6. 能源36号文解读_IDC报告预测:今年中国新能源汽车销量将达116万辆,未来五年复合增长率36%_详细解读_最新资讯_热点事件...
  7. java并发之CAS
  8. [Java网络编程基础]端口,协议
  9. [蓝桥杯2016决赛]愤怒小鸟-模拟
  10. C++string容器-字符串查找和替换