P3353 在你窗外閃耀的星星
阿新 • • 發佈:2018-10-06
b數 是什麽 背景 include 最好的 cst pri code con
黃題爆冷了怎麽辦在線等挺急的啊。。。
題目背景我很認真地看完了。
我哭了,你們呢?
一拳一個淚目怪
這道題一眼看上去就是一個前綴和的。然後我就興致沖沖地寫了一發,交上去10pt,WA聲一片。
最初的想法很弱智,我以為他給的星星是按x升序給的。
並且還有一點:星星可能會重合。一個點可能會有多個星星。這些都是我沒考慮到的。
所以最好的方法是什麽?
直接開一個b數組,記錄每一個x坐標的星星亮度。
詢問的話就先預處理個前綴和,然後進行\(n\)次\(O(1)\)的詢問。復雜度\(O(n)\)。
代碼:
#include<cstdio> #include<algorithm> const int maxn = 100005; int maxx; int b[maxn]; int n, w; int main() { scanf("%d%d", &n, &w); for(int i = 1; i <= n; i++) { int xx, bb; scanf("%d%d", &xx, &bb); b[xx] += bb; maxx = std::max(maxx, xx); } for(int i = 1; i <= maxx; i++) b[i] += b[i - 1]; int ans = -19260817; for(int i = 1; i + w - 1 <= maxx; i++) { ans = std::max(ans, b[i + w - 1] - b[i - 1]); } printf("%d\n", ans); return 0; }
P3353 在你窗外閃耀的星星