70分WA求助
  • 板块P1318 积水面积
  • 楼主19x31
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/7/28 12:51
  • 上次更新2023/11/3 07:15:04
查看原帖
70分WA求助
644846
19x31楼主2023/7/28 12:51
#include<bits/stdc++.h>
using namespace std;
int t,n,k,a[100005],r[100005],b[100005],h[100005],ans=0;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++){
    	cin>>a[i];
	}
	b[1]=a[1];
	h[1]=0;
	for(int i=2;i<=n;i++){
    	if(a[i]<b[i-1]){
    		h[i]=b[i-1]-a[i];
    		b[i]=b[i-1];
		}else{
			b[i]=a[i];
			h[i]=0;
		}
	}
	for(int i=n;i>=1;i--){
		if(h[i]!=0){
			h[i]=0;
		}else{
			break;
		}
	}
	for(int i=1;i<=n;i++){
    	ans+=h[i];
	}
	cout<<ans;
    return 0;
}

思路就是发现自己的左边比自己高,就存下来左边的高度,然后让后面的和存下来的高度比较。最后把右边的那些删除掉。

2023/7/28 12:51
加载中...