noip提高組2013 積木大賽(luogu 1969)
阿新 • • 發佈:2017-09-19
鏈接 family int include getch strong ret void getc
原題鏈接:https://www.luogu.org/problem/show?pid=1969
將高度看成一個序列,當出現下降的時候,就將操作次數加上一個記錄的層數,然後記錄這時的高度,繼續向下讀入
不過需要註意加上最後的高度。防止最後是一個單調上升。。。
為什麽這樣是對的呢,因為這樣操作是從右向左操作的,左邊的高度已知,並且之前的已經處理好。
#include<cstdio> int n,h[100015],t,ans; void read(int &y) { y=0;char x=getchar(); while(x<‘0‘||x>‘9‘) x=getchar();while(x>=‘0‘&&x<=‘9‘) { y=y*10+x-‘0‘; x=getchar(); } } int main() { read(n); for(int i=1;i<=n;i++) { read(h[i]); if(h[i]<h[i-1]) { ans+=h[i-1]-t; t=h[i]; } } printf("%d",ans+h[n]-t);return 0; }
noip提高組2013 積木大賽(luogu 1969)