dalao看一下 80分代码

P1901 发射站

现在过了
by 小越越 @ 2018-07-09 13:08:08


```cpp #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N = 1e6+10; int n, h[N], v[N], pre[N], w[N]; int main() { scanf("%d", &n); for (int i = 1; i <= n; i++) scanf("%d%d", &h[i], &v[i]); memset(w, 0, sizeof(w)); pre[1] = 0; for (int i = 2; i <= n; i++){ pre[i] = i-1; while (h[pre[i]] < h[i] && pre[i] != 0) pre[i] = pre[pre[i]]; if (pre[i] != 0) w[pre[i]] += v[i]; } pre[n] = 0; for (int i = n-1; i >= 1; i--){ pre[i] = i+1; while (h[pre[i]] < h[i] && pre[i] != 0) pre[i] = pre[pre[i]]; if (pre[i] != 0) w[pre[i]] += v[i]; } int ans = 0; for (int i = 1; i <= n; i++) ans = max(ans, w[i]); printf("%d", ans); return 0; } ``` 您要的另一种方法
by 小越越 @ 2018-07-09 13:08:46


|