11 5
4 7
BOB5 DON2 FRA8 JAY9 KAT3 LOR6 ZOE1
1 4
ANN0 BOB5 JAY9 LOR6
2 7
ANN0 BOB5 FRA8 JAY9 JOE4 KAT3 LOR6
3 1
BOB5
5 9
AMY7 ANN0 BOB5 DON2 FRA8 JAY9 KAT3 LOR6 ZOE1
ZOE1 ANN0 BOB5 JOE4 JAY9 FRA8 DON2 AMY7 KAT3 LOR6 NON9
ZOE1 2 4 5 ANN0 3 1 2 5 BOB5 5 1 2 3 4 5 JOE4 1 2 JAY9 4 1 2 4 5 FRA8 3 2 4 5 DON2 2 4 5 AMY7 1 5 KAT3 3 2 4 5 LOR6 4 1 2 4 5 NON9 0
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 using namespace std; 5 /* 6 要使用cout 则必须引入 <iostream> 文件 7 其覆盖了 < stdio.h> 文件的内容 8 */ 9 10 vector<int> hashTable[26*26*26*10+10]; 11 12 int hashName(char s[]){ 13 int t=0; 14 for(int i=0; i<3; i++){ 15 t = t * 26 + s[i] - ‘A‘; 16 } 17 t = t * 10 + s[3] - ‘0‘; 18 return t; 19 } 20 21 int main(){ 22 int N, K; 23 scanf("%d %d", &N, &K); 24 int cno, cnum, hashNo; 25 char cname[5]; 26 while(K--){ 27 scanf("%d %d", &cno, &cnum); 28 while(cnum--){ 29 scanf("%s", cname); 30 hashNo = hashName(cname); 31 hashTable[hashNo].push_back(cno); 32 } 33 } 34 while(N--){ 35 scanf("%s", &cname); 36 hashNo = hashName(cname); 37 sort(hashTable[hashNo].begin(), hashTable[hashNo].end()); 38 printf("%s %d", cname, hashTable[hashNo].size()); 39 for(int i=0; i<hashTable[hashNo].size(); i++){ 40 printf(" %d", hashTable[hashNo][i]); 41 } 42 printf("\n"); 43 } 44 return 0; 45 }
codeup-Course List for Student
原文:https://www.cnblogs.com/heyour/p/12149902.html