1.积木大赛
https://www.luogu.org/problemnew/show/1969
这道题在考试时暴力得比较麻烦,导致只得了80分,t了两个点。
思路为寻找一个区间内高度大于0的最低点,高度为n,ans+=n;
献上个人认为特别巧妙的代码:
#include <cstdio> int main() { int x=0,y,ans=0; freopen("block.in","r",stdin); freopen("block.out","w",stdout); scanf("%d",&y); while(~scanf("%d",&y)) { if(y>x) ans+=y-x; x=y; } printf("%d",ans); return 0; }
2.花匠
https://www.luogu.org/problemnew/show/1970
代码依然很简单,但是很巧妙
#include<stdio.h> int main() { int n,i,x=0,y,ans=1,flag=0; freopen("flower.in","r",stdin); freopen("flower.out","w",stdout); scanf("%d%d",&n,&x); for(i=1;i<n;i++) { scanf("%d",&y); if(y>x&&flag!=1)ans++,flag=1; if(y>x&&flag!=-1)ans++,flag=-1; x=y; } printf("%d",ans); return 0; }
3.华容道
https://www.luogu.org/problemnew/show/1979
考试时想不到如何能暴力骗到分的方法。。。