問題描述 :
作為2023年699萬應屆畢業生中的一員,由於巨集觀經濟的不景氣,小明在畢業當天就華麗麗地失業了! 經歷了千難萬苦的求職過程,小明特別能理解畢業生的就業之難,所以,他現在準備建立一家專門針對it人才的求職中介公司――非誠勿擾人力資源開發****。 基於工作的需要,小明根據求職學生的簡歷描述為每人評定了乙個綜合能力值,能力值是乙個小於等於20的正整數,值越高表示能力越強。當有公司試圖招聘it人員的時候(每次只招聘1名),需要提出乙個綜合能力的最低需求,若人才庫中有符合要求的人才,則一定能成功招聘。當然,若有多名學生同時滿足招聘公司的需求,鑑於高能力人才的稀缺,小明總是優先把能力值低的人才推薦過去;如果依然有多名人員符合要求,則小明就把其中最早來求職的那位學生推薦過去。 需要說明的是,剛開始的時候,公司的人才庫為空,而且一名學生只能和乙個企業簽約,如果推薦成功,則該名學生的資訊需要從人才庫中刪除。
輸入:輸入資料的第一行是乙個正整數t(1 <= t <= 20), 表示有t組測試資料; 每組測試資料第一行是乙個整數n(0 <= n <= 1000),表示按照時間先後發生了n次事件。接下來的n行,每行描述一次事件。對於一次事件,先是乙個字串"add"或者"find",其中"add"表示有一名學生加入了人才庫,"find"表示有企業想招聘一名人員。 如果字串是"add",則後面將有乙個字串s和乙個數字d,用空格隔開,分別表示該名學生的名字和綜合能力值,名字由小寫字母組成,不為空且長度不超過15;如果字串是"find",則後面將有乙個數字,表示招聘公司對人才綜合能力的最低要求。
輸出:輸入資料的第一行是乙個正整數t(1 <= t <= 20), 表示有t組測試資料; 每組測試資料第一行是乙個整數n(0 <= n <= 1000),表示按照時間先後發生了n次事件。接下來的n行,每行描述一次事件。對於一次事件,先是乙個字串"add"或者"find",其中"add"表示有一名學生加入了人才庫,"find"表示有企業想招聘一名人員。 如果字串是"add",則後面將有乙個字串s和乙個數字d,用空格隔開,分別表示該名學生的名字和綜合能力值,名字由小寫字母組成,不為空且長度不超過15;如果字串是"find",則後面將有乙個數字,表示招聘公司對人才綜合能力的最低要求。
樣例輸入:
1樣例輸出:5add lcy 1
add lyd 19
find 11
find 13
add zxs 10
case #1:12lydwait...
2解題思路:
(1)、分情況討論,分為add和find兩種情況討論,其實我們只需要檢視首字母
(2)、我們用乙個陣列book,首先全部賦值為0;當從人才庫中取出人才時,就記錄為1。
(3)、注意我們取出人才時,在所有滿足公司要求的能力值的人中取出能力值最小的;如果有幾個最小值,我們就取出最早求職的。
(4)、當新增人時,人才庫的容量sun 就要加1;取出時就要減1;
1 #include 2 #include 3 #include 4view codeusing
namespace
std;
5int grade[1010];6
char name[1010][20];7
int book[1010];//
標記, 將還在人才庫裡的人標記為0,不在標記為1
8int
main()930
else
3142}43
if(k==-1)//
沒有找到滿足公司要求的人
44 cout<
wait...
"<
45else
//找到
4651}52
}53}54
return0;
55 }
HDU 4557 非誠勿擾
題目描述 作為2013年699萬應屆畢業生中的一員,由於巨集觀經濟的不景氣,小明在畢業當天就華麗麗地失業了!經歷了千難萬苦的求職過程,小明特別能理解畢業生的就業之難,所以,他現在準備建立一家專門針對it人才的求職中介公司 非誠勿擾人力資源開發 基於工作的需要,小明根據求職學生的簡歷描述為每人評定了乙...
非誠勿擾 HDU 4557 Treap入門
作為2013年699萬應屆畢業生中的一員,由於巨集觀經濟的不景氣,小明在畢業當天就華麗麗地失業了!經歷了千難萬苦的求職過程,小明特別能理解畢業生的就業之難,所以,他現在準備建立一家專門針對it人才的求職中介公司 非誠勿擾人力資源開發 基於工作的需要,小明根據求職學生的簡歷描述為每人評定了乙個綜合能力...
hdu 字串統計
problem description 對於給定的乙個字串,統計其中數字字元出現的次數。input 輸入資料有多行,第一行是乙個整數n,表示測試例項的個數,後面跟著n行,每行包括乙個由字母和數字組成的字串。output 對於每個測試例項,輸出該串中數值的個數,每個輸出佔一行。sample input...