`

南阳理工OJ 214 单调递增子序列(二) 二分,动态规划

 
阅读更多

连接:http://acm.nyist.net/JudgeOnline/problem.php?pid=214

 

单调递增子序列(二)

时间限制:1000 ms  |  内存限制:65535 KB
难度:4
 
描述

给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序列,并求出其长度。

如:1 9 10 5 11 2 13的最长单调递增子序列是1 9 10 11 13,长度为5。

 
输入
有多组测试数据(<=7)
每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的下一行里有n个整数,表示数列中的所有元素.每个整形数中间用空格间隔开(0<n<=100000)。
数据以EOF结束 。
输入数据保证合法(全为int型整数)!
输出
对于每组测试数据输出整形数列的最长递增子序列的长度,每个输出占一行。
样例输入
7
1 9 10 5 11 2 13
2
2 -1
样例输出
5
1

 

#include<stdio.h>
const int M=100010;
int mask[M/2];
int date,max;
void gg(int l,int r)
{
       if(r==l)
       {
              mask[r]=date;
              return;
       }
       int mid=(l+r)>>1;
       if(date > mask[mid])gg(mid+1,r);
       else gg(l,mid);
}
int main()
{
     //  freopen("in.txt","r",stdin);
	int n,i,j;
	while(~scanf("%d",&n))
	{
	       max=1;
	       scanf("%d",&date);
	       mask[1]=date;
	       for(i=2;i<=n;i++)
	       {
	              scanf("%d",&date);
	              if(date>mask[max])
                     {
                            max++;
                            mask[max]=date;
                            continue;
                     }
	              gg(1,max);
	       }
	       printf("%d\n",max);
	}
	return 0;
}

 

 

 

 

分享到:
评论

相关推荐

    南阳理工oj离线题库

    南阳理工oj离线题库是为编程爱好者和学习者提供的一种资源,主要用于练习和提高编程技能。这个离线题库通常包含多种类型的编程题目,涵盖了数据结构、算法、计算机科学基础等多个方面。在这个环境中,用户可以不受...

    南阳理工学院OJ第1版解题报告V1.0.pdf

    动态规划的经典应用场景之一,目标是找到序列中最长的单调递增子序列。 #### 18. TheTriangle 又一个动态规划题目,涉及三角形结构中的路径优化,是算法设计中的常见模型。 #### 19. 擅长排列的小明 与问题32类似...

    南阳理工学院OJ_个人AC代码包(Java提交)

    【南阳理工学院OJ_个人AC代码包(Java提交)】是针对Java初学者的一份宝贵资源,它包含了参与ACM国际大学生程序设计竞赛(ICPC)时在南阳理工学院在线评测系统(OJ)上获得正确答案的代码实例。这些代码展示了如何用...

    南阳理工oj stl练习ac代码

    南阳理工的OJ平台可能包含ACM风格的题目,比如动态规划、图论、搜索等问题,通过AC代码,我们可以学习如何在有限的时间内构造高效解决方案。 6. NYOJ系统: NYOJ(南阳理工在线判题系统)是南阳理工学院开发的OJ...

    湖南理工oj题解(学习用)-共230道题

    3. **算法与数据结构**:OJ题解中会涵盖各种常见的算法,如排序(快速排序、归并排序、冒泡排序等)、查找(二分查找、哈希查找等)、图论(最短路径、最小生成树等)、动态规划、回溯法等。同时,还会涉及数据结构...

    哈理工oj 1084百步穿杨

    哈理工OJ1084答案哈理工OJ1084答案哈理工OJ1084答案哈理工OJ1084答案哈理工OJ1084答案

    湖南理工学院OJ-小鱼比可爱

    湖南理工学院小鱼比可爱OJ题

    oj刷题 西安理工大学学生在线实验系统编程题答案(超级详细)

    这个“oj刷题”压缩包文件很可能是包含了西安理工大学在线实验系统中的一些典型题目,包括但不限于排序算法(如冒泡排序、快速排序、归并排序)、搜索算法(如二分查找、深度优先搜索、广度优先搜索)、图论问题(如...

    OJ动态规划DP题目列表

    OJ动态规划DP题目列表 POJ SOJ HDU 动态规划题目

    杭电OJ题目分类

    1. 动态规划:杭电OJ题目分类中有多道动态规划题目,例如1024、1025、1051、1058、1059、1069、1074、1078、1080、1081、1085、1087等。这些题目需要学习和掌握动态规划的基本思想和方法,例如状态转移方程、...

    最长上升子序列

    这些子序列中最长的长度是4,比如子序列(1, 3, 5, 8). 你的任务,就是对于给定的序列,求出最长上升子序列的长度。 输入样例 7 1 7 3 5 9 4 8 6 1 8 3 6 5 9 5 1 2 3 4 5 0 输出样例 4 4 5 提示 一,对输入...

    基于Laravel 5.0的OJ题解网站 , 目前涵盖安科OJ,南阳OJ,杭电OJ ,北大OJ,浙大OJ.zip

    【描述】中提到的“目前涵盖安科OJ,南阳OJ,杭电OJ,北大OJ,浙大OJ”意味着这个题解网站已经集成了多个知名OJ平台的题目,用户可以在一个统一的平台上找到这些不同OJ的题目并查看解决方案。安科OJ、南阳OJ、杭电OJ...

    山东理工大学2016级OJ题1832

    例如在第一个和第二个程序中,都使用了 `sqrt` 函数来计算数列的项。 3. **循环结构**:在计算数列和的程序中,使用了 `for` 循环结构来迭代计算每一项的值,直到达到指定的项数 `m`。 4. **函数定义与调用**:每...

    算法课OJ作业-基于HTML的分治和动态规划源码.zip

    算法课OJ作业-基于HTML的分治和动态规划源码.zip算法课OJ作业-基于HTML的分治和动态规划源码.zip算法课OJ作业-基于HTML的分治和动态规划源码.zip算法课OJ作业-基于HTML的分治和动态规划源码.zip算法课OJ作业-基于...

    ACM-OJ分类

    2. **搜索算法**:深度优先搜索(DFS)、广度优先搜索(BFS)、回溯法、二分查找等。 3. **数据结构**:数组、链表、栈、队列、树(二叉树、平衡树如AVL和红黑树)、图(邻接矩阵、邻接表)、哈希表等。 4. **动态...

    趣味题:柱状图排序 西安理工大学学生在线实验系统 oj

    趣味题:柱状图排序 西安理工大学学生在线实验系统 oj

    动态规划大全(教程,题目)

    2. **常见问题类型**:介绍经典的动态规划问题,如背包问题(完全背包、0-1背包)、最长公共子序列、最短路径问题(Floyd-Warshall算法、Dijkstra算法等)、矩阵链乘法等。 3. **案例分析**:通过具体的实例,详细...

    杭电oj分类.docx

    动态规划是杭电oj分类系统中的一个分类,该分类包含了杭电oj平台上的动态规划题目。这些题目涵盖了动态规划算法的基本概念和应用,包括动态规划算法的设计和分析等方面的知识。 背包问题是杭电oj分类系统中的一个...

    OJ题目及源码

    动态规划的方法是建立一个二维数组,记录两个序列中每个位置的最长公共子序列长度。 3. 凸多边形最优三角剖分:寻找一个多边形的最佳三角剖分方式,使得分割出的三角形数量最少。动态规划可以用来存储已分割部分的...

    北大oj 题目分类

    【北大OJ题目分类】是北京大学在线编程评测系统(Online Judge)中对编程题目的整理,涵盖了初级到中级的各种算法和数据结构。以下是对这些知识点的详细解释: **一、基本算法** 1. **枚举**:枚举是一种暴力求解的...

Global site tag (gtag.js) - Google Analytics