[NOIP 2013]花匠

来源:互联网 发布:孙中山驱除鞑虏 知乎 编辑:程序博客网 时间:2024/04/29 19:14

为什么不看别人怎么做的会觉得这题很水。。

A掉以后观察别人的题解。。突然不知道自己为什么A了。。

待填坑。。


我要做一个链表,单调下降和单调上升的链表(因为做题的时候联想到了KMP)


然后我就不会分析复杂度了!


随手敲了几个数据,过了。。算了,交上去试试!

居然A了= =。。

我会觉得这个代码是个奇葩= =。。


#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define maxn 100010using namespace std;int n;int H[maxn];int high[maxn],low[maxn];int h[maxn],g[maxn],ans;int main(){freopen("FlowerNOIP2013.in","r",stdin);freopen("FlowerNOIP2013.out","w",stdout);scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&H[i]);for(int i=2;i<=n;i++){int j=i-1;while(j&&H[j]<=H[i])j=high[j];high[i]=j;j=i-1;while(j&&H[j]>=H[i])j=low[j];low[i]=j;}for(int i=1;i<=n;i++){h[i]=g[i]=1;int j=high[i];while(j)h[i]=max(g[j]+1,h[i]),j=high[j];j=low[i];while(j)g[i]=max(h[j]+1,g[i]),j=low[j];ans=max(max(ans,g[i]),h[i]);}printf("%d",ans);return 0;}


0 0
原创粉丝点击