类型一:整形Hash
-
一维数组
-
二维数组 算法笔记
-
// 算法笔记 哈希 B // http://codeup.cn/problem.php?cid=100000582&pid=1 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define max 100 int main() { int m=0,n=0; int p[max]={0}; int z_p[max]={0}; int hashTable[max][max]; scanf("%d",&m); int flag=1; while(m--) { memset(hashTable,0,sizeof(hashTable)); scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&p[i]); hashTable[0][p[i]]=1;//表示这一列可以输出 } for(int i=0;i<n;i++) { scanf("%d",&z_p[i]); hashTable[z_p[i]][0]=1;//表示这一行可以输出 用0位置来存储某列某行是否需要输出 } for(int i=0;i<n;i++) { hashTable[z_p[i]][p[i]]++; } for(int i=1;i<max;i++) { flag=0; if(hashTable[i][0]==1) { printf("%d={",z_p[i]); for(int j=1;j<max;j++) { if(hashTable[0][j]==1) { if(flag) printf(","); //控制逗号学学 else flag=1; printf("%d=%d",j,hashTable[i][j]); } } printf("}\n"); } } } return 0; }