poj2403 模拟题目

来源:互联网 发布:网络宣传方案 编辑:程序博客网 时间:2024/06/04 20:11

Hay Points
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 6251 Accepted: 3997

Description

Each employee of a bureaucracy has a job description - a few paragraphs that describe the responsibilities of the job. The employee's job description, combined with other factors, such as seniority, is used to determine his or her salary. 
The Hay Point system frees the Human Resources department from having to make an intelligent judgement as to the value of the employee; the job description is merely scanned for words and phrases that indicate responsibility. In particular, job descriptions that indicate control over a large budget or management over a large number of people yield high Hay Point scores. 

You are to implement a simplified Hay Point system. You will be given a Hay Point dictionary and a number of job descriptions. For each job description you are to compute the salary associated with the job, according to the system.

Input

The first line of input contains 2 positive integers: m <= 1000, the number of words in the Hay Point dictionary, and n <= 100, the number of job descriptions. m lines follow; each contains a word (a string of up to 16 lower-case letters) and a dollar value (a integer number between 0 and 1,000,000). Following the dictionary are the n job descriptions. Each job description consists of one or more lines of text; for your convenience the text has been converted to lower case and has no characters other than letters, numbers, and spaces. Each job description is terminated by a line containing a period.

Output

For each job description, output the corresponding salary computed as the sum of the Hay Point values for all words that appear in the description. Words that do not appear in the dictionary have a value of 0.

Sample Input

7 2administer 100000spending 200000manage 50000responsibility 25000expertise 100skill 50money 75000the incumbent will administer the spending of kindergarden milk moneyand exercise responsibility for making change he or she will shareresponsibility for the task of managing the money with the assistantwhose skill and expertise shall ensure the successful spending exercise.this individual must have the skill to perform a heart transplant andexpertise in rocket science.

Sample Output

700150150



题意:就是给出一份字典,相应的单词对应一些数字

要求在给出的一些文本中查找单词,并且计算数字的总数

注意  可能有单词是没有在其中的



题解:按照头字母进行快速排序,然后通过比对首字母进行查找,当查过过相应的首字母,就需要跳出来,这里是个人的优化,虽然好像没有减少太多的时间复杂度






#include<stdio.h>#include<string>#include<iostream>#include<string.h>#include<algorithm>using namespace std;struct dictionary{    string word;    int num;}a[1005];int cmp(const void *x,const void *y){    dictionary *A=(dictionary *)x;    dictionary *B=(dictionary *)y;    return A->word[0]-B->word[0];}int main(){    //freopen("in.txt","r",stdin);    int m,n;    scanf("%d%d",&m,&n);    for(int i=0;i<m;i++){        cin>>a[i].word>>a[i].num;    }    qsort(a,m,sizeof(dictionary),cmp);    string input;    int ans=0;    while(n--)    {        while(cin>>input)        {            if(input=="."){                printf("%d\n",ans);                ans=0;                break;            }            for(int i=0;i<m;i++){                int flag=0;                if(a[i].word[0]==input[0]){                    flag=1;                    if(a[i].word==input)                        ans+=a[i].num;                }                else if(flag)                    break;            }        }    }    return 0;}


0 0
原创粉丝点击