CF1669E.2-Letter Strings

普及-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

Given nn strings, each of length 22, consisting of lowercase Latin alphabet letters from 'a' to 'k', output the number of pairs of indices (i,j)(i, j) such that i<ji \lt j and the ii-th string and the jj-th string differ in exactly one position.

In other words, count the number of pairs (i,j)(i, j) (i<ji \lt j) such that the ii-th string and the jj-th string have exactly one position pp (1≤p≤21 \leq p \leq 2) such that sip≠sjp{s_{i}}_{p} \neq {s_{j}}_{p}.

The answer may not fit into 32-bit integer type, so you should use 64-bit integers like long long in C++ to avoid integer overflow.

给定 nn 个字符串,每个字符串长度为 22,且均由小写拉丁字母('a' 到 'k')组成。请输出满足 i<ji \lt j 且第 ii 个字符串与第 jj 个字符串恰好在一个位置上不同的索引对 (i,j)(i, j) 的数量。

换言之,统计满足 i<ji \lt j 的索引对 (i,j)(i, j) 的个数,使得第 ii 个字符串与第 jj 个字符串在恰好一个位置 pp(其中 1≤p≤21 \leq p \leq 2)上满足 sip≠sjp{s_{i}}_{p} \neq {s_{j}}_{p}。

答案可能超出 32 位整数范围,因此应使用 64 位整数(例如 C++ 中的 long long)以避免整数溢出。

输入格式

The first line of the input 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 line of each test case contains a single integer nn (1≤n≤1051 \le n \le 10^5) — the number of strings.

Then follows nn lines, the ii-th of which containing a single string sis_i of length 22, consisting of lowercase Latin letters from 'a' to 'k'.

It is guaranteed that the sum of nn over all test cases does not exceed 10510^5.

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

每个测试用例的第一行包含一个整数 nn(1≤n≤1051 \le n \le 10^5),表示字符串的数量。

接下来是 nn 行,其中第 ii 行包含一个长度为 22 的字符串 sis_i,该字符串由小写拉丁字母 'a' 到 'k' 组成。

保证所有测试用例的 nn 之和不超过 10510^5。

输出格式

For each test case, print a single integer — the number of pairs (i,j)(i, j) (i<ji \lt j) such that the ii-th string and the jj-th string have exactly one position pp (1≤p≤21 \leq p \leq 2) such that sip≠sjp{s_{i}}_{p} \neq {s_{j}}_{p}.

Please note, that the answer for some test cases won't fit into 32-bit integer type, so you should use at least 64-bit integer type in your programming language (like long long for C++).

对于每个测试用例,输出一个整数——满足条件的数对 (i,j)(i, j)(其中 i<ji \lt j)的个数,使得第 ii 个字符串与第 jj 个字符串恰好在唯一一个位置 pp(1≤p≤21 \leq p \leq 2)上字符不同,即 sip≠sjp{s_{i}}_{p} \neq {s_{j}}_{p}。

请注意,某些测试用例的答案可能超出 32 位整数范围,因此在编程语言中应至少使用 64 位整数类型(例如 C++ 中的 long long)。

输入输出样例

  • 输入#1

    4
    6
    ab
    cb
    db
    aa
    cc
    ef
    7
    aa
    bb
    cc
    ac
    ca
    bb
    aa
    4
    kk
    kk
    ab
    ab
    5
    jf
    jf
    jk
    jk
    jk

    输出#1

    5
    6
    0
    6

说明/提示

For the first test case the pairs that differ in exactly one position are: ("ab", "cb"), ("ab", "db"), ("ab", "aa"), ("cb", "db") and ("cb", "cc").

For the second test case the pairs that differ in exactly one position are: ("aa", "ac"), ("aa", "ca"), ("cc", "ac"), ("cc", "ca"), ("ac", "aa") and ("ca", "aa").

For the third test case, the are no pairs satisfying the conditions.

第一个测试用例中,恰好在一个位置上不同的字符串对有:("ab", "cb")、("ab", "db")、("ab", "aa")、("cb", "db") 和 ("cb", "cc")。

第二个测试用例中,恰好在一个位置上不同的字符串对有:("aa", "ac")、("aa", "ca")、("cc", "ac")、("cc", "ca")、("ac", "aa") 和 ("ca", "aa")。

第三个测试用例中,不存在满足条件的字符串对。

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

首页