AC日記 鬱悶的出納員 codevs 1286

2022-05-14 06:30:11 字數 1181 閱讀 1626

鬱悶的出納員

思路:設工資下限為ko,然後ko--(因為要小於工資下限);

設cur為記錄工資增長,降低;

設第i個人的工資為pos;

對應的四種操作:

插入:cur-pos-ko;

增長:cur-=pos;

降低:cur+=pos;

每個降低操作都要進行一次刪除節點;

把小於等於cur的節點全部刪掉;

排名:輸出rank()-cur+ko;

splay支援以上全部操作;

還有一點,如果一開始這個人的工資小於ko,則不算在離去的人裡;

來,上**:

#include #include 

#include

#include

using

namespace

std;

#define maxn 1000005

struct

treenodetype

void create(int

x)

};struct treenodetype tree[maxn<<1

];int

n,ko,root,tot,cur,ans,tot_;

inline

void

in(int &now)

}inline

int getson(int

now)

inline

void updata(int

now)

inline

void rotate(int

now)

void splay(int

now)

root=now;

}void insert(int

x) opi=now,now=tree[now].ch[x>tree[now].key];

if(!now)}}

}void

del()

}int rank(int

x) }

if(x<=tree[now].w)

else

}}int

main()

}printf(

"%d\n

",ans);

return0;

}

鬱悶的出納員

這題坑死我了。oier公司是一家大型專業化軟體公司,有著數以萬計的員工。作為一名出納員,我的任務之一便是統計每位員工的工資。這本來是乙份不錯的工作,但是令人鬱悶的是,我們的老闆反覆無常,經常調整員工的工資。如果他心情好,就可能把每位員工的工資加上乙個相同的量。反之,如果心情不好,就可能把他們的工資扣...

鬱悶的出納員 題解(Splay)

題面 用delta記錄對工資的加減,那麼新增節點時點權應 delta,輸出時 delta 幾種操作中減少工資較麻煩 1.delta val 2.刪點 求前驅轉到根,刪除左子樹 這裡的刪除不用乙個乙個暴力刪,直接斷掉子樹關係即可 至於求k大 我比較懶直接改成求size k 1小 逃 include i...

SBT模板 鬱悶的出納員 By Kuangbin

拿來當模板,bin哥別生氣哈 人一我百,人十我萬!追逐青春的夢想,懷著自信的心,永不放棄 by kuangbin 鬱悶的出納員 time limit 5000msmemory limit 65536kb64bit io format lld llu submit status system craw...