字符串,hash的思想?
字符转化成数字其值存到数组里面
#include<stdio.h>
#include<string.h>
long long va[900];
int main(){
int t;
scanf("%d%*c",&t);
while(t--){
int m,n,i;
scanf("%d%*c",&m);
char s[20010];
for(i=0;i<=800;i++)va[i]=0;
for(i=1;i<=m;i++){
gets(s);
char p;
long long q;
sscanf(s,"%c %lld",&p,&q);
va[(int)p+200]=q;
}
scanf("%d%*c",&n);
long long res=0;
for(i=1;i<=n;i++){
gets(s);
int j;
int len=strlen(s);
for(j=0;j<len;j++){
res+=va[(int)s[j]+200];
}
}
printf("%lld.%02lld$\n",res/100,res%100);
}
// return main();
return 0;
}
这里有一个trick....
printf("%lld.%02lld$\n",res/100,res%100);能过
而printf("%lld.%0lld$\n",res/100,res%100);不能
不用long long 据说也不行
补充个测试用例
1
1
a 1
1
a
AC OutPut
0.01$