Vijos1845 花匠
来源:互联网 发布:sql 截断日志 编辑:程序博客网 时间:2024/04/30 00:13
题目大意:给定一列整数,求满足题中所给的条件的最长子序列的长度。
思路:列举上几个i的值就可以发现,实际上题目要我们求一个最长摆动数列,并且数列中的每个数要么比它的左右两个数都小,要么就都大。这样我们只需遍历一遍数列求出波峰与波谷的个数最后加上两端的就行了。
代码如下:
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;const int maxn=100005;int n,a[maxn];int main(){ scanf("%d",&n); if (n==1) { puts("1"); return 0; } //这里特判n=1的情况 bool flag; int ans=1; for (int i=1;i<=n;++i) scanf("%d",&a[i]); int k=1; while (a[k]==a[k+1]) k++; //如果前几项相同,需要一直找下去以确定一个起始趋势 if (a[k]<a[k+1]) flag=1; else flag=0; for (int i=k+2;i<=n;++i) { if (a[i]>a[i-1] && flag==1) continue; if (a[i]<a[i-1] && flag==0) continue; if (a[i]==a[i-1]) continue; if (flag==1) flag=0; else flag=1; ans++; } ans++; printf("%d",ans); return 0;}
0 0
- Vijos1845 花匠
- [NOIP2013][vijos1845]花匠(dp+bit)
- 花匠
- 花匠
- wikioi3289 花匠
- [NOIP2013]花匠
- p1848花匠
- NOIP2013花匠
- NOIP2013 花匠
- NOIP2013 花匠
- NOIP2013花匠
- NOIP2013 花匠
- 【NOIP2013】花匠
- [noip2013tg] 花匠
- noip2013花匠
- 【noip】花匠
- luogu1970 花匠
- NOIP 花匠
- Ubuntu下,查看以及修改PATH的方法
- 月薪3万的程序员都避开了哪些坑?
- java ==,hashCode(),equals(),
- SpringMVC访问资源文件
- 【bzoj2072】 POI2004MOS dp+贪心
- Vijos1845 花匠
- 鼠标拖动
- LeetCode-Binary Tree Upside Down
- JVM内存模型及垃圾回收算法
- interger.parserint(String)与integer.ValueOf(String)的区别
- SpringMVC基于注解映射
- 学习java的前期知识
- Mac下Java JDK的下载安装和配置
- iOS中 GCD-Grand Central Dispath 多线程 UI_21