A-魔法阵
题号:NC14540
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

 这是mengxiang000Tabris来到幼儿园的第七天,mengixang000发动了一个魔法阵,能够召唤出来两只逗逼兽.每只逗逼兽都有自己的名字,而且两只逗逼兽的名字长度是相同的,逗逼兽是要成对出现的才有战斗力,其战斗力是根据其名字而决定的,如果其中一只的名字是s,另外一只的名字为t,那么其战斗力为:

n-1 n-1

Σ  Σ  F(shift(s,i),shift(t,j));

i=0 j=0

shiftsi)表示是以字母s[i]开头的字符串.

例如:

shiftACC,0=ACC

shiftACC,1=CCA

shiftACC,2=CAC

F(字符串A,字符串B)=字符串A和字符串B对应相同位子上相同字母的个数和,现在已知两只逗逼兽的名字,求其战斗力。

例如,如果某只逗逼兽的名字是ACC,另一只逗逼兽的名字是ACG那么这两只逗逼兽的战斗力的值就是:

FACC,ACG+F(ACC,CGA)+F(ACC,GAC)+

FCCA,ACG+F(CCA,CGA)+F(CCA,GAC)+

F (CAC,ACG) +F(CAC,CGA)+F(CAC,GAC)

=2+0+1+1+2+0+0+1+2=9

输入描述:

第一行输入一个整数t,表示一共的测试数据组数。
每组数据输入两行,每行输入一只逗逼兽的名字,保证两只逗逼兽的名字长度相同,保证输入的字符都是大写字母。
t<=100
1<=逗逼兽的名字的长度<=100000

输出描述:

每组数据输出一行,包含一个整数,表示两只逗逼兽的战斗力。 (保证输出结果在2^60以内)
示例1

输入

复制
1
ACC
ACG

输出

复制
9