非诚勿扰

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 566    Accepted Submission(s): 249

Problem Description
作为2013年699万应届毕业生中的一员,由于宏观经济的不景气,小明在毕业当天就华丽丽地失业了!

经历了千难万苦的求职过程,小明特别能理解毕业生的就业之难,所以,他现在准备创建一家专门针对IT人才的求职中介公司——非诚勿扰人力资源开发有限公司。

基于工作的需要,小明根据求职学生的简历描述为每人评定了一个综合能力值,能力值是一个小于等于20的正整数,值越高表示能力越强。当有公司试图招聘IT人员的时候(每次只招聘1名),需要提出一个综合能力的最低需求,若人才库中有符合要求的人才,则一定能成功招聘。当然,若有多名学生同时满足招聘公司的需求,鉴于高能力人才的稀缺,小明总是优先把能力值低的人才推荐过去;如果依然有多名人员符合要求,则小明就把其中最早来求职的那位学生推荐过去。

需要说明的是,刚开始的时候,公司的人才库为空,而且一名学生只能和一个企业签约,如果推荐成功,则该名学生的信息需要从人才库中删除。

 
Input
输入数据的第一行是一个正整数T(1 <= T <= 20), 表示有T组测试数据;

每组测试数据第一行是一个整数n(0 <= n <= 1000),表示按照时间先后发生了n次事件。接下来的n行,每行描述一次事件。对于一次事件,先是一个字符串"Add"或者"Find",其中"Add"表示有一名学生加入了人才库,"Find"表示有企业想招聘一名人员。

如果字符串是"Add",则后面将有一个字符串s和一个数字d,用空格隔开,分别表示该名学生的名字和综合能力值,名字由小写字母组成,不为空且长度不超过15;如果字符串是"Find",则后面将有一个数字,表示招聘公司对人才综合能力的最低要求。

 
Output
对于每组测试数据,第一行输出"Case #c:"(不包含引号)

c是测试数据的组数,从1开始。

然后输出n行,表示n次事件的结果

如果本次事件是添加人才信息入库,则请输出加入该信息后,人才库内的人员数量;

如果本次事件是企业来招聘,则请输出将被录用的人才名字,如果没有人才符合要求,就请输出"WAIT..."

 
Sample Input
1
5
Add lcy 1
Add lyd 19
Find 11
Find 13
Add zxs 10
 
Sample Output
Case #1:
1
2
lyd
WAIT...
2
 
Source
 
Recommend
liuyiding
 

思路:

用vector 处理下就好了 我用vector进行的删除操作 注意 vector删除操作会造成所有数据平移,就像我们平时自己写代码把1------n赋值给0-----n-1一样

消耗比较大 感觉用list效果更好

#include<stdio.h>
#include<vector>
#include<string.h>
#include<algorithm>
#include<string>
using namespace std;
struct haha
{
string str;
int id;
friend bool operator <(haha a,haha b)
{
return a.id<b.id;
}
}temp,q;
vector<struct haha>a[22];
int sum;
int main()
{
int n,cas,i,j,k,ccase=0;
char s[100];
scanf("%d",&cas);
while(cas--)
{
ccase++;
printf("Case #%d:\n",ccase);
sum=0;
for(i=0;i<22;i++)
a[i].clear();
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",s);
if(strcmp(s,"Find")==0)
{ scanf("%d",&k);
while(a[k].empty()&&k<21) k++;
if(k==21) {printf("WAIT...\n");continue;}
sort(a[k].begin(),a[k].end());
printf("%s\n",a[k][0].str.c_str());
a[k].erase(a[k].begin());
sum--;
}
else
{
scanf("%s %d",s,&k);
q.str=s;
q.id=i;
a[k].push_back(q);
sum++;
printf("%d\n",sum);
}
}
}
return 0;
}

hdu 4557 非诚勿扰 vector的应用 原来vector 可以删除指定位置元素 不过消耗大的更多相关文章

  1. HDU 4557 非诚勿扰(Treap找后继)

    非诚勿扰 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submi ...

  2. vector 迭代 删除指定的元素

    std::vector< Bullet * > m_vBullets; std::vector< Bullet * > m_vRemoveBulltes; ){ for ( s ...

  3. hdu 4557 非诚勿扰

    水题…… 代码如下: #include<iostream> #include<stdio.h> #include<algorithm> #include<io ...

  4. HDU 4557 非诚勿扰 队列、(记一次失败的SBT尝试)

    非诚勿扰 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) [Problem De ...

  5. map,vector 等容器内容的循环删除问题(C++)

    map,vector 等容器内容的循环删除问题(C++) map,vector等容器的循环删除不能用普通的方法删除: for(auto p=list.begin();p!=list.end();p++ ...

  6. C++STL二维vector指定位置排序

    自己一直用vector 二维的存储变量 有时候需要进行排序 在此 为记录一下方法 废话少说直接上代码 #include <QCoreApplication> #include <io ...

  7. C++ vector 多次删除第一个元素

    转载声明: 代码都是来源于一下连接,做了一点点修改,为了记忆方便,故贴在这里,原文链接:http://blog.csdn.net/doctor_feng/article/details/1188078 ...

  8. 牛客网 暑期ACM多校训练营(第二场)J.farm-STL(vector)+二维树状数组区间更新、单点查询 or 大暴力?

    开心.jpg J.farm 先解释一下题意,题意就是一个n*m的矩形区域,每个点代表一个植物,然后不同的植物对应不同的适合的肥料k,如果植物被撒上不适合的肥料就会死掉.然后题目将每个点适合的肥料种类( ...

  9. 实战c++中的vector系列--再谈vector的insert()方法(都是make_move_iterator惹的祸)

    之前说过了关于vector的insert()方法,把vector B的元素插入到vector A中.vector A中的结果我们可想而知,可是vector B中的元素还会怎样? 看看之前写过的程序: ...

随机推荐

  1. Delphi经典网站收藏

    http://delphi.icm.edu.pl/   波兰的Delphi控件网站 http://dev.rdxx.com/Delphi/  国内的编程网站 非常全面 http://oracle.ch ...

  2. 推动Common Lisp的实际应用

    推动Common Lisp的实际应用 推动Common Lisp的实际应用

  3. linux ifconfig命令使用详解

    Linux下网卡命名规律:eth0,eth1.第一块以太网卡,第二块.lo为环回接口,它的IP地址固定为127.0.0.1,掩码8位.它代表你的机器本身. 1.ifconfig是查看网卡的信息. if ...

  4. Windows7WithSP1/TeamFoundationServer2012update4/SQLServer2012

    [Info   @09:03:33.737] ====================================================================[Info   @ ...

  5. Hadoop之MapReduce程序应用三

    摘要:MapReduce程序进行数据去重. 关键词:MapReduce   数据去重 数据源:人工构造日志数据集log-file1.txt和log-file2.txt. log-file1.txt内容 ...

  6. 《转》Frameset布局

    前二天在写一个HTML界面,用到了Frameset,主要学习都是在下面的文章里,内容写得很详细,值得推荐大家看下. 网址:http://captaincook.iteye.com/blog/36563 ...

  7. 从零开始学C++之从C到C++(二):引用、内联函数inline、四种类型转换运算符

    一.引用 (1).引用是给一个变量起别名 定义引用的一般格式:类型  &引用名 = 变量名: 例如:int a=1; int  &b=a;// b是a的别名,因此a和b是同一个单元 注 ...

  8. pomelo源代码分析(一)

    千里之行始于足下,一直说想了解pomelo,对pomelo有兴趣,但一直迟迟没有去碰,尽管对pomelo进行源代码分析,在网络上肯定不止我一个,已经有非常优秀的前辈走在前面,如http://golan ...

  9. STL学习总结

    STL就是Standard Template Library,标准模板库.这可能是一个历史上最令人兴奋的工具的最无聊的术语.从根本上说,STL是一些"容器"的集合.这些" ...

  10. FreeNAS 9.1.1 发布,网络存储系统 - 开源中国社区

    FreeNAS 9.1.1 发布,网络存储系统 - 开源中国社区 FreeNAS 9.1.1 发布,网络存储系统