計蒜客習題 公告板

2021-10-03 11:28:46 字數 1122 閱讀 4392

問題:

蒜廠有乙個 h×w 的矩形公告板,其中 h 是高度,w 是寬度。 

現在有若干張 1×wi 的公告, wi 是寬度,公告只能橫著放,即高度為 1 的邊垂直於水平面,且不能互相有重疊,每張公告都要求盡可能的放在最上面的合法的位置上。 

若可以放置,輸出每塊可放置的位置的行號;若不存在,輸出 −1。行號由上至下分別為 1,2,…,h。 

輸入格式 

第一行三個整數 h,w,n (1≤h,w≤10^9;1≤n≤200,000) 。 

接下來 n 行,每行乙個整數 wi(1≤wi≤109) 。 

輸出格式 

輸出n 行,一行乙個整數。

樣例輸入:

3 5 524

3331

2345

6樣例輸出12

13-1

#includeusing namespace std;

int s[1000010 * 5];

int h,w,n;

void up(int p)

void buildtree(int p,int l,int r,int x)

int mid = (l + r) / 2;

if(l <= mid)

if(r > mid)

up(p);

}void modify(int p,int l,int r,int x,int c)

int mid = (l + r) / 2;

if(x <= mid)

else

up(p);

}int query(int p,int l,int r,int x,int y)

int mid = (l + r) / 2;

int res = 0;

if(x <= mid)

if(y > mid)

return res;

}void getval(int p,int l,int r,int x)

else if(x <= query(1,1,h,mid + 1,r))

else

}if(l == r)

else

}int main()

return 0;

}

計蒜客 公告板

問題描述 蒜廠有乙個 h w 的矩形公告板,其中 h 是高度,w 是寬度。現在有若干張 1 wi 的公告,wi 是寬度,公告只能橫著放,即高度為 1 的邊垂直於水平面,且不能互相有重疊,每張公告都要求盡可能的放在最上面的合法的位置上。若可以放置,輸出每塊可放置的位置的行號 若不存在,輸出 1。行號由...

計蒜客 彈簧板

有乙個小球掉落在一串連續的彈簧板上,小球落到某乙個彈簧板後,會被彈到某乙個地點,直到小球被彈到彈簧板以外的地方。假設有 n n 個連續的彈簧板,每個彈簧板佔乙個單位距離,a i a i 代表代表第 i i 個彈簧板會把小球向前彈 a i a i 個距離。比如位置 1 1 的彈簧能讓小球前進 2 2 ...

計蒜客習題 朋友

在社交的過程中,通過朋友,也能認識新的朋友。在某個朋友關係圖中,假定 a 和 b 是朋友,b 和 c 是朋友,那麼 a 和 c 也會成為朋友。即,我們規定朋友的朋友也是朋友。現在,已知若干對朋友關係,詢問某兩個人是不是朋友。請編寫乙個程式來解決這個問題吧。輸入格式 第一行 三個整數 n,m,p n ...