這道題目的題意很明確,給你五種操作,然後針對每次查詢輸出查詢的第k個數字之前所有1-m(m<=k)m個數字之和最大的值。
有插入的題目用鍊錶挺好做的,不過這裡我用的是乙個陣列,用cnt記錄游標位置,因為查詢只查詢游標左邊邊的值(所以後面如果查詢大於cnt,則置為cnt),所以我們想到每次插入乙個值就更新一下資料。我們開了乙個資料結構,包括了3個int型別,乙個是自身的值value,乙個是從第乙個到自己的所有數的和sum,還有乙個是要查詢的所有做大和max。那麼我們每次插入時,前面的都不動,只需要對插入的值進行更新就好了,value為傳入引數,sum為前乙個數的sum+value; 最大值為前乙個max和sum的大者,這是i操作。對於l&r操作,我們利用乙個int的棧來記錄,l壓棧,r退棧並和i操作一樣加入陣列。 d操作直接cnt--就好了。q操作輸出max值。搞定,不過一些特殊情況要判斷,比如游標已在最左邊的l操作等等。
ac**:
#include#include#include#includeusing namespace std;
struct node
void set(int a)
};stackbefore ;
node a[1000035];
int main()
for(int i=1; i<=q; i++)
else
cnt++;
}else if(c[0]=='d')
else if(c[0]=='l')
}else if(c[0]=='r')
}else}}
}
469 凸多邊形
題目描述 給定乙個按順序連線的多邊形的頂點,判斷該多邊形是否為凸多邊形。凸多邊形的定義 注 頂點個數至少為 3 個且不超過 10,000。座標範圍為 10,000 到 10,000。你可以假定給定的點形成的多邊形均為簡單多邊形 簡單多邊形的定義 換句話說,保證每個頂點處恰好是兩條邊的匯合點,並且這些...
HUD2012素數判定
problem description 對於表示式n 2 n 41,當n在 x,y 範圍內取整數值時 包括x,y 39 xinput 輸入資料有多組,每組佔一行,由兩個整數x,y組成,當x 0,y 0時,表示輸入結束,該行不做處理。output 對於每個給定範圍內的取值,如果表示式的值都為素數,則輸...
Batch 合併Drawcall繪製HUD
hud是遊戲中大量使用的元素,乙個血條往往只需要很少的表現。在unity中常用的ui大都是ngui或者ugui,因為 層級交錯或者depth重疊,往往帶來不少的drawcall開銷,從而導致遊戲效能的開銷。這裡我們建議使用3d mesh的方式去繪製hud,從而去優化效能。我們使用c hud.cs動態...