当前位置:网站首页>Problem - 922D、Robot Vacuum Cleaner - Codeforces
Problem - 922D、Robot Vacuum Cleaner - Codeforces
2022-07-06 16:15:00 【Hello_ Ä】
Problem - 922D、Robot Vacuum Cleaner - Codeforces
Pushok the dog has been chasing Imp for a few hours already.
Fortunately, Imp knows that Pushok is afraid of a robot vacuum cleaner.While moving, the robot generates a string t consisting of letters ‘s’ and ‘h’, that produces a lot of noise. We define noise of string t as the number of occurrences of string “sh” as a subsequence in it, in other words, the number of such pairs (i, j), that i < j and and .The robot is off at the moment. Imp knows that it has a sequence of strings ti in its memory, and he can arbitrary change their order. When the robot is started, it generates the string t as a concatenation of these strings in the given order. The noise of the resulting string equals the noise of this concatenation.Help Imp to find the maximum noise he can achieve by changing the order of the strings.
Input
The first line contains a single integer n (1 ≤ n ≤ 105) — the number of strings in robot’s memory.Next n lines contain the strings t1, t2, …, tn, one per line. It is guaranteed that the strings are non-empty, contain only English letters ‘s’ and ‘h’ and their total length does not exceed 105.
Output
Print a single integer — the maxumum possible noise Imp can achieve by changing the order of the strings.
Examples
input
4
ssh
hs
s
hhhs
output
18
Problem analysis
The question is , Here you are. n A string , These strings are all composed of characters ’s’ and ‘h’ Composed of . Let you combine these strings in any order , Make the string contain ’sh‘ Subsequences are at most .
About this problem , It uses a kind of called “ Neighborhood exchange ” Written by , The idea is like this : Two strings a and b, If a+b The composed string contains ’sh‘ Subsequence ratio b+a The string consists of many , Then when you finally splice a Put it in b The former is a better choice . So this method is to write a cmp then sort Just a moment .
cmp The content is to combine the two strings in different order , Calculate what they contain respectively ’sh‘ Number , as for ’sh‘ Number of sequences , It's every one h All before the character s The number of characters adds up . Pay attention to the , If two strings of ’sh‘ The number of sequences is equal , Then go back false( I don't know why , But that's it , Otherwise re).
AC Code
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
#include<math.h>
#include<set>
#include<numeric>
#include<string>
#include<string.h>
#include<iterator>
#include<map>
#include<unordered_map>
#include<stack>
#include<list>
#include<queue>
#include<iomanip>
#define endl '\n'
#define int ll
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll, ll>PII;
const int N = 2e5 + 50;
int get_sh(string& s)
{
int cnt = 0, nums = 0, numh = 0;
for (auto i : s)
{
if (i == 's')
{
nums++;
}
else
{
numh++;
cnt += nums;
}
}
return cnt;
}
bool cmp(string a, string b)
{
string s1 = a + b, s2 = b + a;
return get_sh(s1)>get_sh(s2);
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n;
cin >> n;
vector<string>v(n);
for (int i = 0; i < n; i++)
cin >> v[i];
sort(v.begin(), v.end(),cmp);
string s;
for (auto i : v)s += i;
cout << get_sh(s) << endl;
return 0;
}
ending
Adjacent term exchange method is also a common greedy method , Similar topics include Algorithm improvement Minimum string and New king game - subject - Daimayuan Online Judge
边栏推荐
- Auto.js入门
- 分享一个在树莓派运行dash应用的实例。
- 读取和保存zarr文件
- [exercise-3] (UVA 442) matrix chain multiplication
- QT有关QCobobox控件的样式设置(圆角、下拉框,向上展开、可编辑、内部布局等)
- Opencv learning log 26 -- detect circular holes and mark them
- Problem - 922D、Robot Vacuum Cleaner - Codeforces
- 力扣:第81场双周赛
- 409. Longest palindrome
- Acwing - game 55 of the week
猜你喜欢
Basic Q & A of introductory C language
力扣——第298场周赛
Penetration test (3) -- Metasploit framework (MSF)
Frida hook so layer, protobuf data analysis
Write web games in C language
树莓派4B64位系统安装miniconda(折腾了几天终于解决)
antd upload beforeUpload中禁止触发onchange
Flask框架配置loguru日志库
树莓派4B安装opencv3.4.0
2027. Minimum number of operations to convert strings
随机推荐
input 只能输入数字,限定输入
渗透测试 2 --- XSS、CSRF、文件上传、文件包含、反序列化漏洞
7-1 understand everything (20 points)
QT按钮点击切换QLineEdit焦点(含代码)
Problem - 922D、Robot Vacuum Cleaner - Codeforces
C language is the watershed between low-level and high-level
1005. Maximized array sum after K negations
AcWing:第56场周赛
Flask框架配置loguru日志库
Advancedinstaller安装包自定义操作打开文件
Differential (one-dimensional, two-dimensional, three-dimensional) Blue Bridge Cup three body attack
Opencv learning log 27 -- chip positioning
拉取分支失败,fatal: ‘origin/xxx‘ is not a commit and a branch ‘xxx‘ cannot be created from it
Socket communication
Nodejs crawler
Codeforces Round #800 (Div. 2)AC
useEffect,函数组件挂载和卸载时触发
QT实现窗口渐变消失QPropertyAnimation+进度条
Acwing - game 55 of the week
C basic grammar