UVA 11736 Debugging RAM

模拟题;

比赛的时候忘记把1变成64位的1了,跪了好久;

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<map>
 4 #include<string>
 5 using namespace std;
 6 
 7 unsigned long long val[250];
 8 int num[250];
 9 map<string,int>mp;
10 char s[100];
11 char jkl[111];
12 int main()
13 {
14     int d,b,v;
15     while(scanf("%d%d",&b,&v)!=EOF)
16     {
17         mp.clear();
18         for(int i=0;i<v;i++)
19         {
20             val[i]=0;
21             num[i]=0;
22         }
23         for(int i=0;i<v;i++)
24         {
25             scanf("%s",s);
26             scanf("%d",&d);
27             mp[s]=i;
28             num[i]=d;
29         }
30         gets(jkl);
31         int q;
32         char w;
33         for(int i=0;i<v;i++)
34         {
35             unsigned long long tmp=0;
36             for(int j=num[i]-1;j>=0;j--)
37             {
38                 for(int k=b-1;k>=0;k--)
39                 {
40                     w=getchar();
41                     if(w=='1')
42                     tmp+=((unsigned long long)1)<<(j*b+k);
43                 }
44                 gets(jkl);
45             }
46             val[i]=tmp;
47         }
48         scanf("%d",&q);
49         gets(jkl);
50         while(q--)
51         {
52             scanf("%s",s);
53             if(mp.find(s)==mp.end())printf("%s=
",s);
54             else printf("%s=%llu
",s,val[mp[s]]);
55         }
56     }
57     return 0;
58 }
View Code
原文地址:https://www.cnblogs.com/yours1103/p/3422398.html