CF2026C Action Figures
题目描述
在 Monocarp 家附近有一家商店,专门售卖手办。近期,这家店将推出一套新的手办系列,总共包含 $n$ 个手办。其中,第 $i$ 个手办的价格为 $i$ 枚金币。在第 $i$ 天到第 $n$ 天之间,这个手办都是可以购买的。
Monocarp 知道他在这 $n$ 天中的哪几天可以去商店。
每次去商店的时候,他可以购买多件手办(当然,不能买尚未发售的手办)。如果他在同一天购买了至少两个手办,他可以享受一个折扣:他所购买的最贵手办是免费的,也就是说他无需为该手办支付费用。
Monocarp 的目标是从这个手办系列中,分别购买一个第 $1$ 个手办、一个第 $2$ 个手办……一直到一个第 $n$ 个手办。注意,每个手办只能购买一次。请你帮他计算,他最少需要花费多少金币?
输入格式
第一行输入一个整数 $t$,表示有多少个测试用例($1 \le t \le 10^4$)。
每个测试用例包含两行:
- 第一行是一个整数 $n$,表示手办的数量(也是销售天数)($1 \le n \le 4 \cdot 10^5$);
- 第二行是一个长度为 $n$ 的字符串 $s$。如果在第 $i$ 天 Monocarp 可以去商店,$s_i$ 就为 1;否则为 0。
额外的限制条件有:
- 在每个测试用例中,字符串 $s$ 的最后一个字符 $s_n$ 一定是 1,所以 Monocarp 无论如何都能在最后一天买到所有手办。
- 所有测试用例中 $n$ 的总和不超过 $4 \cdot 10^5$。
输出格式
对每个测试用例,输出一个整数,表示 Monocarp 最少需要花费的金币数。
说明/提示
在第一个测试用例中,Monocarp 可以在第一天购买第一个手办,花费 1 枚金币。
在第二个测试用例中,他可以在第三天购买第 1 和第 3 个手办,在第四天购买第 2 和第 4 个手办,在第六天购买第 5 和第 6 个手办。这样总费用为 $1+2+5=8$ 枚金币。
在第三个测试用例中,他可以在第三天购买第 2 和第 3 个手办,其余手办在第七天购买,最终花费 $1+2+4+5+6 = 18$ 枚金币。
**本翻译由 AI 自动生成**