2 条题解

  • 0
    @ 2025-10-8 16:58:04
    #include <bits/stdc++.h>
    using namespace std;
    const int N = 100010;
    int h[N], up[N], down[N];
    int main()
    {
        int n; scanf("%d", &n);
        for (int i = 1; i <= n; i ++ )scanf("%d", &h[i]);
        
        for (int i = 1; i <= n; i ++ )
            up[i] = h[i] >= h[i - 1] ? up[i - 1] + 1 : 1;
        for (int i = n; i >= 1; i -- )
            down[i] = h[i] >= h[i + 1] ? down[i + 1] + 1 : 1;
    
        int ans = 0;
        for (int i = 1; i <= n; i ++ ) ans = max(ans, up[i] + down[i] - 1);
        printf("%d\n", ans);
        return 0;
    }
    
    • 0
      @ 2025-10-8 16:57:58
      #include <bits/stdc++.h>
      using namespace std;
      const int N = 100010;
      int h[N], up[N], down[N];
      int main()
      {
      	int n; scanf("%d", &n);
      	for (int i = 1; i <= n; i ++ )scanf("%d", &h[i]);
      	
      	for (int i = 1; i <= n; i ++ )
      		up[i] = h[i] >= h[i - 1] ? up[i - 1] + 1 : 1;
      	for (int i = n; i >= 1; i -- )
      		down[i] = h[i] >= h[i + 1] ? down[i + 1] + 1 : 1;
      
      	int ans = 0;
          for (int i = 1; i <= n; i ++ ) ans = max(ans, up[i] + down[i] - 1);
      	printf("%d\n", ans);
      	return 0;
      }
      • 1

      【模拟】哪一座山最宽[USACO10OPEN] Mountain Watching S

      信息

      ID
      1588
      时间
      1000ms
      内存
      128MiB
      难度
      7
      标签
      递交数
      21
      已通过
      9
      上传者