【Henu ACM Round #12 B】 Alice, Bob, Two Teams
【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
写个前缀和 和 一个后缀和。
(即前i个字符A所代表的数字的和以及前i个字符B所代表的数字的和。。
然后枚举前i个字符翻转。
求B对应数字的最大值
枚举i..n这些字符翻转
求B对应数字的最大值
两个同时求最大值就是答案了。
【代码】
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 5e5;
int a[N+10],n,b[N+10];
ll pre[N+10][2],after[N+10][2];
string s;
int main(){
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "r", stdin);
#endif
ios::sync_with_stdio(0),cin.tie(0);
cin >> n;
for (int i = 1;i <= n;i++) cin >> a[i];
cin >> s;
for (int i = 1;i <= n;i++) b[i] = s[i-1]-'A';
for (int i = 1;i <= n;i++){
pre[i][0] = pre[i-1][0];
pre[i][1] = pre[i-1][1];
if (b[i]==0) pre[i][0]+=a[i];
if (b[i]==1) pre[i][1]+=a[i];
}
for (int i = n;i >= 1;i--){
after[i][0] = after[i+1][0];
after[i][1] = after[i+1][1];
if (b[i]==0) after[i][0]+=a[i];
if (b[i]==1) after[i][1]+=a[i];
}
ll ans = 0;
for (int i= 1;i <= n;i++)
if (b[i]==1) ans+=a[i];
for (int i = 1;i <=n;i++)
ans=max(ans,after[i+1][1]+pre[i][0]);
for (int i = n;i >= 1;i--)
ans = max(ans,after[i][0]+pre[i-1][1]);
cout << ans << endl;
return 0;
}
【Henu ACM Round #12 B】 Alice, Bob, Two Teams的更多相关文章
- 【Henu ACM Round #12 C】 Alice, Bob, Two Teams
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 考虑任意两个字符串(a,b) 假设a在b的前面 那么如果a+b>=b+a 这里的+表示字符串的链接 那么显然需要交换a,b的位 ...
- 【Henu ACM Round #12 E】Thief in a Shop
[链接] 我是链接,点我呀:) [题意] n个物品,每个物品都有无限个. 第i个物品的价格是一样都,都是ai 让你从中选出恰好k个物品 问你选出的物品的总价值 有多少种不同的可能. [题解] 可以用f ...
- 【Henu ACM Round #12 D】 Longest Subsequence
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 记录每个数字出现的次数cnt[x]; (大于1e6的直接忽略) 另外用一个数组z[1e6] 然后for枚举x 第二层for枚举x的倍 ...
- 【Henu ACM Round #12 A】 Grandma Laura and Apples
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 知道题意之后就是一个模拟的过程了. 用int now记录当前苹果的个数.bool flag记录是否有小数(即半个苹果) (这样处理为 ...
- 【Henu ACM Round#18 E】Anya and Cubes
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 每个数字有3种选择. 1.选中它. 2.选中它且加阶乘符号 3.不选中它(即计算和的时候不考虑它) 如果我们直接暴力写的话复杂度是\ ...
- 【Henu ACM Round#17 D】Hexagons!
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 题目的图吓人. 找下规律就会发现从内到外是1,6,12,18 即1,16,26,36... 即1+6(1+2+3+...) 等差求和 ...
- 【Henu ACM Round#14 E】Kefa and Watch
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 在做之前需要了解一个知识点. 就是如果一个字符串s是一个a循环串. (字符串的长度设为n,下标从1开始 那么s[1..n-a]和s[ ...
- 【Henu ACM Round#24 E】Connected Components
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 要求把连续的一段li..ri的边全都删掉. 然后求剩下的图的联通数 如果暴力的话 复杂度显然是O(k*m)级别的. 考虑我们把li. ...
- 【Henu ACM Round#24 D】Iterated Linear Function
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 把B提取出来就是一个等比数列了. 求和一下会发现是这种形式. \(B*\frac{(A^n-1)}{A-1}+A^n*x\) 则求一 ...
随机推荐
- [NOI2012]随机数生成器 矩阵乘法
Code: #include<cstdio> #include<algorithm> #include<iostream> #include<cstring& ...
- DedeCMS筛选简单实现方法不改后台源文件
笔者在前面几篇文章中提到的dedecms筛选的实现方法,对新手来说实现过程较复杂.接下来分享一个最简单的实现在移动端上筛选功能. 最近在筹备移动端企业站,实现功能有:实现一个管理后台管理PC端和移动端 ...
- Linux学习,部署django项目到服务器,及安装python,uwsgi等
开启网络 vi /etc/sysconfig/network-script/ifcfg-eth0 onboot=yes 退出保存 service network restart ping www.ba ...
- Git学习笔记 1,GitHub常用命令1
廖雪峰Git教程 莫烦Git教程 莫烦Git视频教程 --------------- init > apt-get install git # 安装 > mkdir /home/yzn_g ...
- [SDOI2011]消防(树的直径)
[SDOI2011]消防 题目描述 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000). 这个国家的人对火焰有超越宇宙的热情, ...
- 【转】 HTML解析:基于XPath的C#类库HtmlAgiliytyPack
[转] HTML解析:基于XPath的C#类库HtmlAgiliytyPack 最近处于毕业设计开始阶段,前期工作需要去国外的一些专业数据库网站比对一些所需TF家族信息,为了快捷方便,想到用程序去帮助 ...
- centos的终端字体杂乱的问题
sudo yum -y install dejavu-sans-* dejavu-serif-fonts 下载字体一下就好了
- [Recompose] Make Reusable React Props Streams with Lenses
If you hard-code a stream of props to target a specific prop, it becomes impossible to reuse that st ...
- java 爬虫在 netbeans 里执行和单独执行结果不一样
在做内容測试的时候.发现我的爬虫(前些文章略有提及)在 netbeans 里面可以成功爬取网页内容,而单独执行时,给定一个 url,爬到的网页却与在浏览器里面打开 url 的网页全然不一样,这是一个非 ...
- Light oj 1138 - Trailing Zeroes (III) 【二分查找好题】【 给出N!末尾有连续的Q个0,让你求最小的N】
1138 - Trailing Zeroes (III) PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...