洛谷 P1318 【積水面積】題解
阿新 • • 發佈:2018-04-07
能力 不難 至少 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 【積水面積】題解