b338: 跟百鬼玩遊戲!3!
標籤 : string
通過比率 : 3人/4人 ( 75% ) [非即時]
評分方式:
Tolerant

最近更新 : 2025-12-16 20:28

內容


今天我在房間裡玩遊戲的時候,旁邊的百鬼あやめ突然湊過來,神秘地說:
「今天我們來玩一個字母遊戲吧!我會給你一串字母,你要把它切成兩段。切得好的人,就可以拿到獎勵!」

我皺著眉頭問:
「怎麼切才算好呢?」

她笑著解釋:
「很簡單,每段字串裡面不同的字母越多越好!你要找到一種切法,讓前半段和後半段不同字母的數量加起來最多。」

送你一點例子:
- 字串 "abc" → 可以切成 "a""bc",前段不同字母 1 個,後段 2 個,加起來 3。
- 字串 "bbbbb" → 不管怎麼切,前後段加起來最多 2(因為只有一種字母)。
- 字串 "babacaba" → 可能切成 "bab""acaba",前段不同字母 2 個,後段 3 個,加起來 5。

我心裡想:
「原來要找的,就是一種切法,讓兩段字串不同字母數量加總最大。」

輸入說明

第一行是一個整數 t(1 ≤ t ≤ 10⁴)—— 測試資料的組數。

接下來每組測試資料包含兩行:
第一行是一個整數 n(2 ≤ n ≤ 2 × 10⁵)—— 字串 s 的長度
第二行是一個字串 s,由小寫英文字母組成。

保證所有測試資料的字串長度總和不超過 2 × 10⁵。

 

輸出說明

對於每一筆測資輸出f(a) + f(b) 的最大值

範例輸入
5
2
aa
7
abcabcd
5
aaaaa
10
paiumoment
4
aazz
範例輸出
2
7
2
10
3
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (50%): 1.0s , <1M
公開 測資點#1 (20%): 1.0s , <10M
公開 測資點#2 (20%): 1.0s , <50M
公開 測資點#3 (10%): 2.0s , >50M
提示 :

所有測試資料的字串長度總和不超過 2 × 10⁵。

記得在main裡面第一行加上

ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);

50% n <= 100
100% 題目給的

標籤:
string
出處:
[管理者:
eedwang (37830楊珈瑜)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」