ATcoder-[AGC048B]Bracket Score【结论,贪心】
正题
题目链接: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(nlogn)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【结论,贪心】相关推荐
- 2018.09.21 atcoder An Invisible Hand(贪心)
传送门 简单贪心啊. 这题显然跟t并没有关系,取差量最大的几组买入卖出就行了. 于是我们统计一下有几组差量是最大的就行了. 代码: #include<bits/stdc++.h> #def ...
- ARC120D Bracket Score 2 (模拟)
题面 给一个长度为 2N2N2N 的序列 AAA,定义一个长度为 2N2N2N 的合法括号序列的 得分(score) 为: 对于每对配对的括号 i,ji,ji,j,∣Ai−Aj∣|A_i-A_j|∣A ...
- Atcoder题解与视频集
开启Atcoder之路 开启Atcoder之路_sortmin的博客-CSDN博客_atcoder怎么用 atcoder心得 atcoder心得_404REN的博客-CSDN博客_atcoder怎么用 ...
- [CF/AT]各大网站网赛 体验部部长第一季度工作报告
文章目录 CodeForces #712 (Div. 1)--1503 A. Balance the Bits B. 3-Coloring C. Travelling Salesman Problem ...
- java正则表达式匹配数字范围_在java中怎么利用正则表达式匹配数字
在java中怎么利用正则表达式匹配数字 发布时间:2020-12-03 17:47:12 来源:亿速云 阅读:58 作者:Leah 在java中怎么利用正则表达式匹配数字?针对这个问题,这篇文章详细介 ...
- 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 ...
- [总结]2019年10月 OI学习/刷题记录
10月份记录! 2019/10/1 UOJ #74. [UR #6]破解密码 Hash+分类讨论 UOJ #75. [UR #6]智商锁 Matrix-Tree定理+随机化 UOJ #76. [UR ...
- NOI2020训练日志
每天写日志能让自己清楚的知道自己在摸鱼/kk 8.13 打了两天UNR,交互不会交互,提答不会提答,哈希也不会哈希 真的菜到爆炸- 8.9 模拟赛 被打爆了 T1:容斥+多项式+齐次线性递推 T2: ...
- 决策回归树回归算法30
1.决策回归树原理概述 与分类树一样 裂分指标,使用的是MSE.MAE MSE(y,y^)=1nsamples∑i=0nsamples−1(yi−y^i)2\text{MSE}(y, \hat{y}) ...
最新文章
- QueryPerformanceFrequency用法--Windows高精度定时计数
- 【ccf-csp201512-5】矩阵
- java数组最大下标_【Java视频教程】day09-面向对象
- 用Python进行数据探索,探索竞赛优胜方案
- python sorted list 包含元组 字典 的多列排序
- solr mysql 速度_提高solr的搜索速度
- Go基础-核心特性和前景
- 机器人操作系统ROS(一):发布接收消息
- Rust:trait中 关联类型、泛型参数、默认参数混用
- Windows 修改注册表实现键位修改
- 记录一下落地网关soul(shenyu)过程中的一些实践
- C语言学习笔记《带你学C带你飞》P41-P61
- 添加小度在家显示无法连接服务器,小度在家突然连不上网了
- 试验设计方法与Design-Expert软件应用目录
- 基于Springboot和VUE的聊天项目,仿PC端微信
- 在浏览器上打开、预览Excel xlsx表格文件
- 飞行棋程序(附源码)
- 计算机财务管理系统的建立,第13章 计算机财务管理系统的建立.ppt
- Calibre for Mac v5.20.0 中文版 电子书阅读管理工具
- LRUCache简单实现
热门文章
- html li 做瀑布流,js实现瀑布流效果(自动生成新的内容)
- python笔试题 github_简单的python面试题,居然
- ufo帧率测试网站_一加7游戏续航测试 满电开始玩猜猜能玩多久
- mongodb可视化工具 linux,Linux中安装启动MongoDB与可视化工具
- pandas用均值填充nan_Pandas学习笔记(三)
- 能源36号文解读_IDC报告预测:今年中国新能源汽车销量将达116万辆,未来五年复合增长率36%_详细解读_最新资讯_热点事件...
- java并发之CAS
- [Java网络编程基础]端口,协议
- [蓝桥杯2016决赛]愤怒小鸟-模拟
- C++string容器-字符串查找和替换