CF2026C.Action Figures

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

在 Monocarp 家附近有一家商店,专门售卖手办。近期,这家店将推出一套新的手办系列,总共包含 nn 个手办。其中,第 ii 个手办的价格为 ii 枚金币。在第 ii 天到第 nn 天之间,这个手办都是可以购买的。

Monocarp 知道他在这 nn 天中的哪几天可以去商店。

每次去商店的时候,他可以购买多件手办(当然,不能买尚未发售的手办)。如果他在同一天购买了至少两个手办,他可以享受一个折扣:他所购买的最贵手办是免费的,也就是说他无需为该手办支付费用。

Monocarp 的目标是从这个手办系列中,分别购买一个第 11 个手办、一个第 22 个手办……一直到一个第 nn 个手办。注意,每个手办只能购买一次。请你帮他计算,他最少需要花费多少金币?

输入格式

第一行输入一个整数 tt,表示有多少个测试用例(1≤t≤1041 \le t \le 10^4)。

每个测试用例包含两行:

  • 第一行是一个整数 nn,表示手办的数量(也是销售天数)(1≤n≤4⋅1051 \le n \le 4 \cdot 10^5);
  • 第二行是一个长度为 nn 的字符串 ss。如果在第 ii 天 Monocarp 可以去商店,sis_i 就为 1;否则为 0。

额外的限制条件有:

  • 在每个测试用例中,字符串 ss 的最后一个字符 sns_n 一定是 1,所以 Monocarp 无论如何都能在最后一天买到所有手办。
  • 所有测试用例中 nn 的总和不超过 4⋅1054 \cdot 10^5。

输出格式

对每个测试用例,输出一个整数,表示 Monocarp 最少需要花费的金币数。

输入输出样例

  • 输入#1

    4
    1
    1
    6
    101101
    7
    1110001
    5
    11111

    输出#1

    1
    8
    18
    6

说明/提示

在第一个测试用例中,Monocarp 可以在第一天购买第一个手办,花费 1 枚金币。

在第二个测试用例中,他可以在第三天购买第 1 和第 3 个手办,在第四天购买第 2 和第 4 个手办,在第六天购买第 5 和第 6 个手办。这样总费用为 1+2+5=81+2+5=8 枚金币。

在第三个测试用例中,他可以在第三天购买第 2 和第 3 个手办,其余手办在第七天购买,最终花费 1+2+4+5+6=181+2+4+5+6 = 18 枚金币。

本翻译由 AI 自动生成

输入解题思路,AI测评打分。不知道怎么写?

首页