非诚勿扰

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. dumpbin

    在使用VC时,可以用DUMPBIN.EXE来得到某个DLL中所输出的符号的清单.如下面的 命令:dumpbin -exports Cmpnt1.dll如: C:/WINDOWS/system32> ...

  2. QT插件开发方式(没看懂)

    创建一个QT的库项目,删除自动生成的.h和.cpp文件,添加一个接口定义.h文件和一个接口实现类(一个.h一个.cpp).代码如下: 1.接口文件源码 #ifndef PLUGININTERFACE_ ...

  3. 灵动标签的使用方法 ecms通过运行sql获取须要的记录

    在某些条件下,我们要求站点的某页上显示指定的信息, 可是这样的指定假设固定去用代码写死的话,对以后的修改将会是大麻烦: 这时候sql语句的优势就凸显出来,利用sql语句仅仅须要改改数字,就能让显示的内 ...

  4. ORA-00376:file x cannot be read at this time

    之前出现过机房断电情况,重启数据库后发现出现ORA-00376的错误. 通过查询数据文件状态: SQL> select file_id,online_status from dba_data_f ...

  5. C++ 指针—02 指针与引用的对照

    ★同样点: ●都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址:而引用则是某块内存的别名. ★不同点: ●指针是一个实体,而引用仅是个别名: ●引用仅仅能在定义时被初始化一次,之后不可变: ...

  6. jQuery EasyUI API 中文文档 - 布局(Layout)

    <html> <head> <script src="jquery-easyui/jquery.min.js"></script> ...

  7. ByteBuffer和String的互相转换

    import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; import java ...

  8. hdu 4888 Redraw Beautiful Drawings 最大流

    好难好难,将行列当成X和Y,源汇点连接各自的X,Y集,容量为行列的和,相当于从源点流向每一行,然后分配流量给每一列,最后流入汇点,这样执意要推断最后是否满流,就知道有没有解,而解就是每一行流向每一列多 ...

  9. pan

    百度云盘地址第一季http://pan.baidu.com/share/link?shareid=198342&uk=1191518428第二季http://pan.baidu.com/sha ...

  10. Cocos2dx项目启程二 之 封装属于我的按钮类

    不知道为什么,很讨厌cocos2dx的 各菜单类,比如按钮:如果一张图片上就已经有按钮的几个状态了,我还是要创建多张资源图片, 最起码要指定这张图片上哪块区域是这个普通状态,哪块区域是那个选中状态.. ...