P3353 在你窗外闪耀的星星
https://www.luogu.com.cn/problem/P3353
涉及知识点:贪心,前缀和,(线段树)
黄色题
涉及知识点:贪心,前缀和,(线段树)
黄色题
思路:
没错,这是一眼就能看出是打前缀和的水题。但是我高兴的打完后却wa了。(10分)百思不得其解。后来才发现会有重点!!如果有好几个星星在同一个点上那么这个点的亮度是它们的亮度和。然后一遍跑过去就行了。sum[i]表示前i个点的星星亮度和。f[i]表示第i个点的亮度。
代码:
没错,这是一眼就能看出是打前缀和的水题。但是我高兴的打完后却wa了。(10分)百思不得其解。后来才发现会有重点!!如果有好几个星星在同一个点上那么这个点的亮度是它们的亮度和。然后一遍跑过去就行了。sum[i]表示前i个点的星星亮度和。f[i]表示第i个点的亮度。
代码:
#include<bits/stdc++.h> using namespace std; int n,w,b[1000005],ans=-1,f[1000005]; struct node{ int x,w; }a[1000005]; bool cmp(node a,node b) { return a.x<b.x; } int main() { cin>>n>>w; for(int i=1; i<=n; i++) { cin>>a[i].x>>a[i].w; f[a[i].x]+=a[i].w; } for(int i=1; i<=n; i++){ b[i]=b[i-1]+f[i]; } for(int i=w; i<=n; i++) { ans=max(ans,b[i]-b[i-w]); } cout<<ans; return 0; }

浙公网安备 33010602011771号