题解 | #子序列#

Rating

https://ac.nowcoder.com/acm/contest/11233/C

牛客IOI周赛26-普及组T2

作者:Feecle6418
链接:https://ac.nowcoder.com/discuss/669017?type=101&order=0&pos=7&page=1&channel=-1&source_id=1
来源:牛客网

结论:最优解要么是最左边插入一个 a,要么是最右边插入一个 b。枚举两种情况,判断即可。具体判断时,记录前面有几个 a,遇到一个 b 就加上 (a 的个数)*(a 的个数-1)/2。

需要开 unsigned long long。

#include<bits/stdc++.h>
using namespace std;
char a[550000];
long long len;
int main(){
    cin >> (a + 1);
    len = strlen(a + 1);
    long long ans = 0,sum = 0,maxn = 0,ct = 0;
    a[0] = 'a';
    a[len + 1] = 'b';
    for(int i = 0;i <= len;i++){
        if(a[i] == 'a') ans++;
        else if(a[i] == 'b') sum += (ans - 1) * ans / 2; 
    }
    for(int i = 1;i <= len + 1;i++){
        if(a[i] == 'a') ct++;
        if(a[i] == 'b') maxn += (ct - 1) * ct / 2; 
    }
    cout << max(maxn,sum) << endl;
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-24 13:39
在记录秋招的大魔王很...:别被忽悠了,我做了多年销售。我可以告诉你,这就是忽悠你的,销售一定要看底薪也要看提成两者不可缺一。提成是有业绩的时候才拿的到的,谁能保证一直有单状态都好。销售有时候很讲究运气的。底薪是你这个人这个岗位日常工作体现的价值。别小看底薪,你看那些跳槽去做经理主管的,底薪底一些,人家愿意去吗?所以那些说销售靠提成的纯属忽悠,除非他们的业务很容易成单。
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务