NKOI 1344 人力資源管理

2021-07-14 15:59:03 字數 1680 閱讀 3219

人力資源管理

time limit:10000ms  memory limit:65536k

total submit:230 accepted:141

case time limit:1000ms

description

某公司有n個員工,每個員工有乙個工作能力值(該值為60000以內的自然數)。

tom是公司人力資源部門的主管,他可以進行如下3種操作:

1.tom為公司招聘了乙個能力值為x的新員工

2.tom為公司辭退了乙個能力值為y的員工

3.tom要查出在所有員工能力值由高到低的排名中,能力值大於w的員工的人數

input

第一行兩個整數n,m 表示有n個員工,和tom的m項工作

接下來一行,n個整數,表示n個員工的能力值

接下來m行,每行有兩個整數a,b(1<=b<=60000)。

a==1 表示招聘了乙個能力值為b的新員工

a==2 表示辭退了乙個能力值為b的員工(若沒有能力值為b的員工,則該操作無效)

a==3 表示查出能力值》b的員工的個數,並輸出結果

output

若干行,每行乙個整數,表示輸入中所有a==3的操作的結果。

sample input

樣例輸入1:

6 5

9 4 6 2 3 5

1 71 10

3 62 9

3 6

樣例輸入2:

4 4

4 1 2 5

1 33 3

2 43 1

sample output

樣例輸出1:32

樣例輸出2:23

hint

n,m<=100000

分析:題中給出,每個員工的能力值在60000以內,我們可以建立乙個表示區間[1,60001]的線段樹。

線段樹的節點struct node;  

cnt記錄該出現在區間[a,b]中的數字個數

查詢能力值大於y的人的個數即查詢能力值在y+1到60001的人數即可

#include#includeusing namespace std;

const int maxn=60001;

inline void _read(int &x)

for(x=0;t>='0'&&t<='9';t=getchar())x=x*10+t-'0';

if(!sign)x=-x;

}int n,m,a,b,s[maxn+2],tot;

struct wktree[2*maxn];

void insert(int x,int y)

int getnum(int r)

int main()

insert(0,maxn);

for(int i=1;i<=m;i++)

}

2016 11 7人力資源管理講座有感

今天是這系列講座的第四節,錢焱博士的側重點是人力資源管理,不過在這兩個小時的時間裡,主要在人際關係上講了很多問題。一 要有戰略性 站位與人交往要站在對方的角度思考,這不是技巧或者行動,而是深入內心的一種想法。舉了乙個例子,在每年招10多個研究生的時候,收到的郵件附件有兩三個人是完全原樣填好提交的。這...

M人力資源管理

m人力資源管理 人力資源計畫編制 人力資源計畫編制 組建專案團隊 組建專案團隊 輸入 專案管理計畫 事業環境因素 組織過程資產 工具與技術 預分派 談判 招募 虛擬團隊 輸出 專案人員分派 資源日曆 專案管理計畫 專案團隊成員的選擇採用的形式 招聘 招聘依據 人力資源計畫 內部招聘 外部招聘 兩種集...

人力資源管理 01

專案的人力資源管理包括人力資源計畫編制,組建專案團隊,專案團隊建設,管理專案團隊。人力資源計畫編制主要內容包括確定,記錄,並分派專案角色,職責和請示彙報關係,輸出主要有角色和職責分配矩陣,報告關係,以及專案的組織結構 專案團隊建設主要內容 招募,分派到專案工作的所需人力資源,得到專案所需的人員是資訊...