C++,codeforces,2072B,B. Having Been a Treasurer in the Past, I Help Goblins Deceive

/*
codeforces,2072B,B. Having Been a Treasurer in the Past, I Help Goblins Deceive
用一个字符串表示金额,金额数量为字符串的不同的子序列中"-_-"的个数
子序列是从字符串中删除若干个字符(可以是0个)后得到的字符串,
删除不同的字符得到的子序列被定义为两个不同的子序列
给一个由'-'和'_'组成的字符串
问将字符串重新排列后,能得到的最大金额是多少
输入
t //测试案例数,每个案例占两行
n //第一行为字符串长度
-__-_-- //第二行为字符串
*/
/*
一个字符串的金额最大时,其中的'_'字符在字符串最中间,'-'字符平均地分布在两端
即"---___----"的形式是金额最大的形式
最大金额为中间'_'的数量乘以左边'-'的数量再乘以右边'-'的数量
*/
#include <iostream>
#include <string>
#include <algorithm>
void solve(){
long long n;std::cin>>n;
std::string price;std::cin>>price;
//统计'_'的数量
long long mouth = std::count(price.begin(),price.end(),'_');
//计算'-'的数量
long long eye = n-mouth;
//eye/2是左边'-'的数量,eye/2+(int(eye%2!=0))是右边'-'的数量
std::cout<<mouth*(eye/2)*(eye/2+(int(eye%2!=0)) )<<std::endl;
}
int main(){
int t;std::cin>>t;
while(t--){
solve();
}
}
posted @   Kazuma_124  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示