当前位置:网站首页>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
边栏推荐
- Understand what is a programming language in a popular way
- 1005. Maximized array sum after K negations
- Penetration test (7) -- vulnerability scanning tool Nessus
- Opencv learning log 29 -- gamma correction
- 605. Planting flowers
- Penetration testing (5) -- a collection of practical skills of scanning King nmap and penetration testing tools
- Specify the format time, and fill in zero before the month and days
- Analyse du format protobuf du rideau en temps réel et du rideau historique de la station B
- It is forbidden to trigger onchange in antd upload beforeupload
- TCP's three handshakes and four waves
猜你喜欢

QT实现窗口置顶、置顶状态切换、多窗口置顶优先关系

Read and save zarr files

(POJ - 3579) median (two points)

Penetration test (3) -- Metasploit framework (MSF)

Analysis of protobuf format of real-time barrage and historical barrage at station B

Penetration test (7) -- vulnerability scanning tool Nessus

Penetration test (4) -- detailed explanation of meterpreter command

浏览器打印边距,默认/无边距,占满1页A4

1903. Maximum odd number in string

(POJ - 3685) matrix (two sets and two parts)
随机推荐
Flag framework configures loguru logstore
Read and save zarr files
日期加1天
HDU - 6024 building shops (girls' competition)
Socket communication
2078. Two houses with different colors and the farthest distance
D - function (HDU - 6546) girls' competition
605. Planting flowers
浏览器打印边距,默认/无边距,占满1页A4
PySide6 信号、槽
Ball Dropping
树莓派4B安装opencv3.4.0
Write web games in C language
[exercise-9] Zombie's Treasury test
Determine the Photo Position
Problem - 922D、Robot Vacuum Cleaner - Codeforces
Common configuration files of SSM framework
It is forbidden to trigger onchange in antd upload beforeupload
Pytorch extract skeleton (differentiable)
“鬼鬼祟祟的”新小行星将在本周安全掠过地球:如何观看