1. 程式人生 > >洛谷 P1318 【積水面積】題解

洛谷 P1318 【積水面積】題解

能力 不難 至少 bits 表達 += body post div

其實想通了的話,本題並不難,關鍵是要**把二維分為多個一維**(大概就是這個意思,表達能力不太好,見諒!)
本來一看,以為會超時,可能是數據較水吧,用這種方法還挺快的(至少沒有超時),下面是程序:
```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 【積水面積】題解