poj2403 模拟题目
2016-07-24 10:45
399 查看
Hay Points
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
Sample Output
题意:就是给出一份字典,相应的单词对应一些数字
要求在给出的一些文本中查找单词,并且计算数字的总数
注意 可能有单词是没有在其中的
题解:按照头字母进行快速排序,然后通过比对首字母进行查找,当查过过相应的首字母,就需要跳出来,这里是个人的优化,虽然好像没有减少太多的时间复杂度
#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;
}
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 6251 | Accepted: 3997 |
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 2 administer 100000 spending 200000 manage 50000 responsibility 25000 expertise 100 skill 50 money 75000 the incumbent will administer the spending of kindergarden milk money and exercise responsibility for making change he or she will share responsibility for the task of managing the money with the assistant whose skill and expertise shall ensure the successful spending exercise . this individual must have the skill to perform a heart transplant and expertise in rocket science .
Sample Output
700150 150
题意:就是给出一份字典,相应的单词对应一些数字
要求在给出的一些文本中查找单词,并且计算数字的总数
注意 可能有单词是没有在其中的
题解:按照头字母进行快速排序,然后通过比对首字母进行查找,当查过过相应的首字母,就需要跳出来,这里是个人的优化,虽然好像没有减少太多的时间复杂度
#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;
}
相关文章推荐
- 多线程 —— 使用锁编写线程安全的程序
- 快排为什么那么快
- Hadoop--The Definitive Book_4th Contents
- Pycharm Professional 激活服务器
- In-Place upgrade to Team Foundation Server (TFS) 2015 from TFS 2013Team Foundation Server TFS TFS 2015 TFS upgrade TFS with Sharepoint
- HTML5-常见的事件- contextmenu 事件
- Ugly Number
- Redis主从
- 2016 北邮暑期训练3-A题(CodeForces 697B Barnicle)白痴题
- 2016 Multi-University Training Contest 2 H Helter Skelter (hdu5741) 【二分】
- 深入理解javascript作用域第二篇之词法作用域和动态作用域
- 安卓应用开发基础_UI
- 经验分享之搭建SVN服务器问题集锦
- Mac+idea开发Java提速快捷键总结
- 二分查找
- 在eclipse中使用CDT插件导入外部静态库
- Reading Books
- POJ 1703 Find them, Catch them .
- java异常分类
- CodeForces 547B - Mike and Feet(单调栈)