1. 程式人生 > >noip提高組2013 積木大賽(luogu 1969)

noip提高組2013 積木大賽(luogu 1969)

鏈接 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)