CF1820A.Yura's New Name

入门

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

After holding one team contest, boy Yura got very tired and wanted to change his life and move to Japan. In honor of such a change, Yura changed his name to something nice.

Fascinated by this idea he already thought up a name ss consisting only of characters "_" and "^". But there's a problem — Yura likes smiley faces "_" and "^^". Therefore any character of the name must be a part of at least one such smiley. Note that only the consecutive characters of the name can be a smiley face.

More formally, consider all occurrences of the strings "_" and "^^" in the string ss. Then all such occurrences must cover the whole string ss, possibly with intersections. For example, in the string "^___^__" the characters at positions 3,4,9,103,4,9,10 and 1111 are not contained inside any smileys, and the other characters at positions 1,2,5,6,71,2,5,6,7 and 88 are contained inside smileys.

In one operation Jura can insert one of the characters "_" and "^" into his name ss (you can insert it at any position in the string). He asks you to tell him the minimum number of operations you need to do to make the name fit Yura's criteria.

在举办了一场团队竞赛后,男孩尤拉感到非常疲惫,想要改变自己的生活,移居日本。为了纪念这一改变,尤拉将自己的名字改成了一个“好听”的名字。

受这一想法的启发,他已构思出一个仅由字符 “_” 和 “^” 组成的名字 ss。但这里存在一个问题——尤拉喜欢笑脸符号 “_” 和 “^^”。因此,名字中的每个字符都必须属于至少一个这样的笑脸符号。注意:只有名字中连续的字符才能构成一个笑脸符号。

更形式化地说,考虑字符串 ss 中所有子串 “_” 和 “^^” 的出现位置。那么,所有这些出现位置的并集必须覆盖整个字符串 ss(允许重叠)。例如,在字符串 “^___^__” 中,位置 3,4,9,103,4,9,10 和 1111 上的字符未被任何笑脸符号覆盖,而位置 1,2,5,6,71,2,5,6,7 和 88 上的字符则被某些笑脸符号所覆盖。

在一次操作中,尤拉可以在其名字 ss 中插入一个字符 “_” 或 “^”(可插入到字符串的任意位置)。他请你告诉他:为使名字满足尤拉的条件,所需的最少操作次数是多少?

输入格式

Each test consists of multiple test cases. The first line contains a single integer tt (1≤t≤1001 \le t \le 100) —the number of test cases. The description of test cases follows.

The first and only line of each test case contains a single string ss (1≤∣s∣≤1001 \leq |s| \leq 100), consisting of characters "_" and "^", — the name to change.

每个测试包含多个测试用例。第一行包含一个整数 tt(1≤t≤1001 \le t \le 100),表示测试用例的数量。随后是各测试用例的描述。

每个测试用例仅有一行,包含一个字符串 ss(1≤∣s∣≤1001 \leq |s| \leq 100),由字符 "_" 和 "^" 组成——即待修改的名称。

输出格式

For each test case, output a single integer — the minimum number of characters you need to add to the name to make it fit for Yura. If you don't need to change anything in the name, print 00.

对于每个测试用例,输出一个整数——为使名字符合尤拉的要求,你需要添加的最少字符数。如果名字无需任何修改,请输出 00。

输入输出样例

  • 输入#1

    7
    ^______^
    ___^_^^^_^___^
    ^_
    ^
    ^_^^^^^_^_^^
    ___^^
    _

    输出#1

    5
    5
    1
    1
    0
    3
    2

说明/提示

In the first test case, you can get the following name by adding 55 characters:

______^

In the third test case, we can add one character "^" to the end of the name, then we get the name:

_

In the fourth test case, we can add one character "^" to the end of the name, then we get the name:

^^

In the fifth test case, all of the characters are already contained in smiley faces, so the answer is 00.

In the seventh test case, you can add one character "^" at the beginning of the name and one character "^" at the end of the name, then you get the name:

_

在第一个测试用例中,你可以通过添加 55 个字符得到如下名称:

______^

在第三个测试用例中,我们可以在名称末尾添加一个字符 "^",从而得到名称:

_

在第四个测试用例中,我们可以在名称末尾添加一个字符 "^",从而得到名称:

^^

在第五个测试用例中,所有字符均已包含在笑脸表情中,因此答案为 00。

在第七个测试用例中,你可以在名称开头添加一个字符 "^",并在名称末尾添加一个字符 "^",从而得到名称:

_

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

首页