题解 P1969 【积木大赛】

ww3113306

2017-10-31 22:34:24

Solution

刚刚居然发现这是noip的题。。。震惊。。。 然而并不需要DP,线段树,,,什么什么的 纯模拟就好了啊 而且数组也不需要啊,,5个变量就好了 因为存储中间答案是没有用的 ```cpp #include<bits/stdc++.h> using namespace std; int s,n,ans,now; int main() { int i; scanf("%d",&n); scanf("%d",&ans);//肯定至少要第一块那么多次(实际上是所以目标值的最大值那么多次,但是要找最大值麻烦,反正后面可以解决,所以直接读第一块就好了) now=ans;//记录当前目标积木高度 for(i=1;i<n;i++) { scanf("%d",&s); if(s>now) ans+=(s-now);//如果后面的大于当前目标,显然要多搞几次才行,,, //如果小于,现在在搞这一块的时候顺便就可以把下一块弄好了 //所以只要+下一块比现在多的就可以了 now=s;//更新现在目标的值 } printf("%d",ans);//愉快输出 return 0; } ```