#b338. 跟百鬼玩遊戲!3!
跟百鬼玩遊戲!3!
Problem Description
Author: eedwang
今天我在房間裡玩遊戲的時候,旁邊的百鬼あやめ突然湊過來,神秘地說:
「今天我們來玩一個字母遊戲吧!我會給你一串字母,你要把它切成兩段。切得好的人,就可以拿到獎勵!」
我皺著眉頭問: 「怎麼切才算好呢?」
她笑著解釋: 「很簡單,每段字串裡面不同的字母越多越好!你要找到一種切法,讓前半段和後半段不同字母的數量加起來最多。」
送你一點例子:
- 字串
"abc"→ 可以切成"a"和"bc",前段不同字母 1 個,後段 2 個,加起來 3。 - 字串
"bbbbb"→ 不管怎麼切,前後段加起來最多 2(因為只有一種字母)。 - 字串
"babacaba"→ 可能切成"bab"和"acaba",前段不同字母 2 個,後段 3 個,加起來 5。
我心裡想: 「原來要找的,就是一種切法,讓兩段字串不同字母數量加總最大。」
Input Format
第一行是一個整數 t(1 ≤ t ≤ 10⁴)—— 測試資料的組數。
接下來每組測試資料包含兩行: 第一行是一個整數 n(2 ≤ n ≤ 2 × 10⁵)—— 字串 s 的長度 第二行是一個字串 s,由小寫英文字母組成。
保證所有測試資料的字串長度總和不超過 2 × 10⁵。
Output Format
對於每一筆測資輸出f(a) + f(b) 的最大值
5
2
aa
7
abcabcd
5
aaaaa
10
paiumoment
4
aazz
2
7
2
10
3
Hint
所有測試資料的字串長度總和不超過 2 × 10⁵。
記得在main裡面第一行加上
ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
50% n <= 100 100% 題目給的