【NOIP 模拟题】[T1](递推+乱搞)
来源:互联网 发布:恒指用什么软件看盘 编辑:程序博客网 时间:2024/05/17 06:32
【题解】【递推】
【这道题,其实十分的简单(NOIPday1 t1嘛 哎呀呀)】
【首先找出在初始情况下(即不改变任一元素的值)每一条上升子序列的长度,把当前这个子串的起始元素和结束元素存一下】
【枚举相邻的两个子串,看是否能连在一起,即查看改变当前串的起始元素或改变上一个串的尾元素能否连在一起并存储这两种情况中的最大值为当前的最优值】
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int f[300010],n,a[300010],ans,num[300010],tot;int main(){freopen("lis.in","r",stdin);freopen("lis.out","w",stdout);int i,j;scanf("%d",&n);for(i=1;i<=n;++i) scanf("%d",&a[i]);i=2; int last=1; f[1]=1;while(i<=n) { while(i<=n&&a[i]>a[i-1]) f[i]=last,i++; last=i; f[i]=i; num[++tot]=i-1; i++; }for(i=1;i<=n;++i) ans=max(ans,i-f[i]+1);for(i=2;i<=tot;++i) { int x=num[i],l=f[x]; if(l-1<=0||a[l+1]-a[l-1]>=2) ans=max(ans,x-f[l-1]+1); if(l-2<=0) ans=max(ans,x); if(l-2>0&&a[l]-a[l-2]>=2) ans=max(ans,x-f[l-2]+1); }printf("%d\n",ans);return 0; }
0 0
- 【NOIP 模拟题】[T1](递推+乱搞)
- 【NOIP 模拟题】[T1]质数生成器(线性筛+乱搞)
- 【NOIP 模拟题】[T1]return(模拟)
- 【NOIP 模拟题】[T1] 等差数列(dp)
- 【NOIP 模拟题】[T1]连锁店(贪心)
- [NOIP模拟题][模拟][DP][乱搞]
- 【NOIP 模拟题】[T3]三角形(差分+乱搞)
- (noip模拟 约瑟夫游戏)<神**乱搞题>
- 【NOIP 模拟题】[T1]数列(找规律+欧几里得算法)
- 【NOIP 模拟题】中位数(规律+递推)
- 【NOIP 模拟题】求和 (打表找规律+递推)
- 【NOIP 模拟题】[T2]one(递推)
- NOIP模拟题 [递推][DP][搜索]
- [NOIP模拟题][DFS][DP][乱搞]
- [noip模拟赛]中位数(乱搞)
- NOIP模拟(10.19)T1 打牌
- NOIP模拟(10.20)T1 刮刮卡
- NOIP模拟(20171023)T1 fibonacci
- 数据分组-可视分箱
- VPW_BUS协议
- [hdu 5952 Counting Cliques]暴搜
- 数据结构实验之串一:KMP简单应用
- BP神经网络初识
- 【NOIP 模拟题】[T1](递推+乱搞)
- Codeforces Gym 101061 J Cola (巧妙的思维题)
- 简单的SpringMvc实例
- Linux内核结构
- 2016.10.30
- Java JNI调用dll中的C代码的流程
- Python 字符串
- 核心绘图——Core Graphics
- ajax请求插件vue-resource的学习