Cuckoo for Hashing

http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2719

 1 #include <stdio.h>
 2 #include <string.h>
 3 const int N=1010;
 4 using namespace std;
 5 int a[N],b[N],f[N];
 6 int main()
 7 {
 8     int n1,n2,m,o=0;
 9     while(~scanf("%d %d %d",&n1,&n2,&m))
10     {
11         o++;
12         int flag1 = 0,flag2 = 0;
13         if (n1==0&&n2==0&&m==0)
14             break;
15         memset(a,-1,sizeof(a));
16         memset(b,-1,sizeof(b));
17         for (int i = 0; i < m; i++)
18             scanf("%d",&f[i]);
19         int t1,t2,tt;
20         for (int i = 0; i < m; i++)
21         {
22             tt = f[i];
23             while(1)
24             {
25                 t1 = tt%n1;
26                 if (a[t1]==-1)
27                 {
28                     a[t1] = tt;
29                     flag1 = 1;
30                     break;
31                 }
32                 else
33                 {
34                     int temp = a[t1];
35                     a[t1] = tt;
36                     t2 = temp%n2;
37                     if (b[t2]==-1)
38                     {
39                         b[t2] = temp;
40                         flag2 = 1;
41                         break;
42                     }
43                     else
44                     {
45 
46                         tt = b[t2];
47                         b[t2] = temp;
48                         flag2 = 1;
49 
50                     }
51                 }
52             }
53 
54         }
55         printf("Case %d:
",o);
56         if (flag1)
57         {
58             printf("Table 1
");
59             for (int i = 0; i < n1; i++)
60             {
61                 if (a[i]!=-1)
62                     printf("%d:%d
",i,a[i]);
63 
64             }
65         }
66         if (flag2)
67         {
68             printf("Table 2
");
69             for (int i = 0; i < n2; i++)
70             {
71                 if (b[i]!=-1)
72                     printf("%d:%d
",i,b[i]);
73             }
74         }
75 
76     }
77     return 0;
78 }
79  
View Code
原文地址:https://www.cnblogs.com/lahblogs/p/3455905.html