poj-2403

题意:

输入 m和n 然后输入m个字典序列,每个序列包括一个字符窜 和一个数字,之后输入n个文章,以'.'作为结束,查询文章中是否有字典里的字符串有的话加上他的数字。

解题思路:

使用map 看了别人写的map确实好用,解决了好多麻烦。map<a,b> m,相当于简历一个b类型的数组以a类型为下标。剩下的就是查询就行了。

具体代码:

#include<iostream>
#include<map>
#include<string>
#include<cstring>
#include<stdlib.h>
using namespace std;
map <string, int> mm;
int main()
{
    int t,n;
    cin>>t>>n;
    string s;
    for(int i=0;i<t;i++)
    {
        cin>>s;
        cin>>mm[s];
    }
    getchar();
    long long sum;
    while(n--)
    {
        sum=0;
        while(cin>>s,s!=".")
        {
            if(mm.find(s) != mm.end())
                sum+=mm[s];
        }
        cout<<sum<<endl;
    }
    system("pause");
    return 0;
}
View Code
原文地址:https://www.cnblogs.com/baoluqi/p/3736028.html