既然代主席叫窩寫題解,窩當然得好好寫辣。。
原題:思路:
其實最主要的問題是在記憶體滿的時候將誰彈出,也就是讓留在記憶體裡面的頁面盡可能得發揮作用。。
怎麼發揮作用?反正碰到相同頁面的能發揮作用了嘛。。對記憶體裡面的所有頁面找里他下乙個相同頁面,刪除的時候當然是刪除下乙個頁面最遠的那個啦。。
然後貌似不太靠譜?可能很多人都考慮到這種情況,例如有2個記憶體,請求是123122222這樣的,把3打入記憶體時可能覺得保留2也是個不錯的方案?我們不妨這麼想,第3個以後的2都是上乙個2所作出的貢獻而不是第1個2,那這樣的話記憶體裡面的頁面就只能做一次貢獻,而做完貢獻他們就會被新頁面重新整理,這樣的話顯然要優先保留下乙個頁面離得比較近的了。。。
#include#define inc(i,l,r) for(int i=l;i<=r;i++)
#define dec(i,l,r) for(int i=l;i>=r;i--)
#define inf 2147483647
#define mem(a) memset(a,0,sizeof(a))
#define ll long long
#define nm 100010
#define nm 1000000
#define link(x) for(edge*j=h[x];j;j=j->next)
using namespace std;
int read()
while(isdigit(ch))x=x*10+ch-'0',ch=getchar();
return x*f;
}struct tmp{
int next,t;
bool operator<(const tmp&o)const{return nextq;
bool v[nm];
bool cmp(int x,int y){
return b[x]
校隊排位賽 F 優先佇列
題目 看病要排隊這個是地球人都知道的常識。不過經過細心的0068的觀察,他發現了醫院裡排隊還是有講究的。0068所去的醫院有三個醫生 汗,這麼少 同時看病。而看病的人病情有輕重,所以不能根據簡單的先來先服務的原則。所以醫院對每種病情規定了10種不同的優先順序。級別為10的優先權最高,級別為1的優先權...
優先佇列貪心
最近做了幾個用優先佇列進行貪心的題目,這裡寫下來,以免忘了。1 cf 799 b 每次選最便宜的衣服,沒什麼好說的,一發過 include include include include include define n 6005 define inf 0x3f3f3f3f include incl...
貪心加優先佇列
消滅兔子 李陶冶 命題人 基準時間限制 1 秒 空間限制 131072 kb 分值 40 有n只兔子,每只有乙個血量b i 需要用箭殺死免子。有m種不同型別的箭可以選擇,每種箭對兔子的傷害值分別為d i 為p i 1 i m 假設每種箭只能使用一次,每只免子也只能被射一次,計算要消滅地圖上的所有兔子...