这一题纯水题。。。。。
注意一点就行了,就是语言是由a-z组成的但是呢 可能一个都没得也就是说可能会有空、。。。。要使用gets函数来输入。。。然后这题使用set来判重,
省去不少代码,但是呢,效率低 。。。。另外可以使用hash来做,更快一点。。。
//
// main.cpp
// uva 10887 - Concatenation of Languages
//
// Created by XD on 15/8/6.
// Copyright (c) 2015年 XD. All rights reserved.
//
#include <iostream>
#include <string>
#include <queue>
#include <stack>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include<vector>
#include <string.h>
#include <string>
#include <algorithm>
#include <set>
#include <map>
#include <cstdio>
using namespace std ;
set<string> ans ;
string s[1501] ;
string s1[1501] ;
int main(int argc, const char * argv[]) {
int casenum ;
int n1, n2 ;
scanf("%d" ,&casenum) ;
int kase = 0 ;
while(casenum--)
{
char ts[13] ;
scanf("%d%d" ,&n1,&n2) ;
getchar() ;
for (int i = 0 ; i < n1; i++) {
// fgets(ts,11,stdin) ;
gets(ts) ;
s[i].clear() ;
// ts[strlen(ts)-1] = '\0' ;
// if (strlen(ts) == 0) {
// s[i].append("/") ;
// }
// else{
s[i].append(ts) ;
// }
}
for (int i = 0; i < n2; i++) {
// fgets(ts,11,stdin) ;
gets(ts) ;
s1[i].clear() ;
// ts[strlen(ts)-1] = '\0' ;
// if (strlen(ts) == 0) {
// s1[i].append("/") ;
// }
// else{
s1[i].append(ts) ;
// }
}
for (int i = 0; i < n1; i++) {
for (int j = 0; j < n2; j++) {
ans.insert(s[i] + s1[j]) ;
}
}
printf("Case %d: %ld\n" ,++kase , ans.size()) ;
ans.clear() ;
}
return 0;
}
//#include <iostream>
//#include <algorithm>
//#include <cstring>
//#include <cstdlib>
//#include <cstdio>
//#include <cmath>
//
//using namespace std;
//const int MAXSIZE = 2250002;
//int num, head[MAXSIZE], tnext[MAXSIZE];
//char a[1502][11], b[1502][11], c[MAXSIZE][22];
//int Hash(char *str)
//{
// int seed = 131, sum = 0;
// while(*str)
// sum = sum * seed + (*str++);
// return (sum & 0x7FFFFFFF) % MAXSIZE;
//}
//void Hash_Insert(int s)
//{
// int h = Hash(c[s]);
// int u = head[h];
// while(u)
// {
// if(!strcmp(c[s], c[u]))
// {
// return ;
// }
// u = tnext[u];
// }
// tnext[s] = head[h];
// head[h] = s;
// ++num;
//}
//int main()
//{
//#ifdef test
// freopen("sample.txt", "r", stdin);
//#endif
// int t, n, m, cct = 0;
// scanf("%d", &t);
// while(t--)
// {
// num = 1;
// memset(head, 0, sizeof(head));
// scanf("%d%d", &n, &m);
// getchar();
// for(int i=0; i<n; i++)
// gets(a[i]);
// for(int i=0; i<m; i++)
// gets(b[i]);
// for(int i=0; i<n; i++)
// for(int j=0; j<m; j++)
// {
// sprintf(c[num],"%s%s", a[i], b[j]);
// Hash_Insert(num);
// }
// printf("Case %d: %d\n", ++cct, num-1);
// }
// return 0;
//}