洛谷 P1318 积水面积题解

Posted ctc20050412

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷 P1318 积水面积题解相关的知识,希望对你有一定的参考价值。

其实想通了的话,本题并不难,关键是要**把二维分为多个一维**(大概就是这个意思,表达能力不太好,见谅!)
本来一看,以为会超时,可能是数据较水吧,用这种方法还挺快的(至少没有超时),下面是程序:
```cpp
#include<bits/stdc++.h>

int n,a[10001],ans,maxnum;

int main(){

cin>>n;
for(int i = 1;i<=n;i++){
cin>>a[i];
maxnum = max(maxnum,a[i]);
}
for(int i = 1;i<=maxnum;i++){
int x = 1,y;
while(x<=n){
for(;x<=n;x++)
if(a[x]>=i) break;
for(y = x+1;y<=n;y++)
if(a[y]>=i) break;
if(x<y&&y<=n&&x<=n) ans+=y-x-1;
x = y;
}
}
cout<<ans;
return 0;
}

```
当然,这里还可以再优化,比如可以把中间x,y连续的部分滤掉,这里只提供一下思路,就不再写了(懒╮(╯﹏╰)╭)
第一次写题解,好紧张o(>﹏<)o
有什么问题或建议欢迎评论~~~

以上是关于洛谷 P1318 积水面积题解的主要内容,如果未能解决你的问题,请参考以下文章

洛谷 P1318 积水面积

洛谷题解P4326 求圆的面积

积水面积

Day8 栈的使用--计算面积 接雨水

Day8 栈的使用--计算面积 接雨水

洛谷P1183 多边形的面积