一种语言是一个字符串组成的集合。两种语言的拼接是在第一种语言的字符串的结尾处拼接第二种语言的字符串而构成的所有字符串的集合。
• 例如,如果给出两种语言 A 和 B :
• A = {cat, dog, mouse} ;
• B = {rat, bat} ;
• 则 A 和 B 的连接是:
• C = {catrat, catbat, dograt, dogbat, mouserat, mousebat} 。
• 给出两种语言,请您计算两种语言拼接所产生的字符串的数目。
输入格式:输入有多个测试用例。输入的第一行给出测试用例的数目 T ( 1≤T≤25 )。接下来给出 T 个测试用例。每个测试用例的第一行给出两个整数, M 和N ( M, N < 1500 ),是每种语言中字符串的数量。然后, M 行给出第一种语言的字符串;接下来的 N 行给出了第二种语言的字符串。本题设定字符串仅由小写字母( ‘a’ 到 ‘z’ )组成,长度小于 10 个字符,并且每个字符串在一行中给出,没有任何前导或尾随的空格。
输入语言中的字符串可能不会被排序,并且不会有重复的字符串。
对于每个测试用例,输出一行。每个测试用例的输出是以测试用例的序列号开始,然后给出在第一种语言的字符串之后拼接第二种语言中的字符串所产生的字符串数。
输入样例:2
3 2
cat
dog
mouse
rat
bat
1 1
abc
cab
Case 1: 6
Case 2: 1
本题只要求输出组合数,因此不用考虑组合字符串,只要两数相乘就得结果,但注意输入格式和顺序。
c++#include#include using namespace std; int main(){ int t,a,b; string s; cin>>t; for(int i=0;i cin>>a>>b; for(int j=0;j cin>>s; } cout<<"Case "< java import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int t = sc.nextInt(); for(int i=0;iint a = sc.nextInt(); int b = sc.nextInt(); String[] arrA = new String[a]; String[] arrB = new String[b]; for(int j=0;j arrA[j]=sc.next(); } for(int j=0;j arrB[j]=sc.next(); } System.out.println("Case "+(i+1)+": "+a*b); } } }



