nyoj 214
//nyoj 214
这个题目和字符串的问题类似,都是给出一组数据,寻找最长的单调递增字符
这一题一开始我用dp做,发现超时,看了下时间,n*n的复杂度,换过一种思路
用类似于栈的方式,来存储每次更新过后的单调序列,里面二分查找很容易理解
就是数组作用开始比较难理解,大致思路是先把输入数组的第一个元素放入Stack数组里
然后一个for,从第二个元素开始,if每次判断和top顶元素大小,逐次叠加上递增的序列
如果不满足,用二分法查找到a[i]应该放在Stack数组的适合位置
这个适合位置就是Stack数组按字典序的顺序排列。。。
所以数组Stack就相当于更新最长的序列,最后只要输出Stack数组的top顶值就可以。。。。
#include <iostream>
using namespace std;
int main()
{
int t,i,a[100001],Stack[100001];
while(cin>>t,!cin.eof())
{
for(i=0;i<t;i++)
cin>>a[i];
Stack[1]=a[0];
int top=1;
for(i=1;i<t;i++)
{
if(a[i]>Stack[top])
Stack[++top]=a[i];
else
{
int low=1,high=top;
while(low<=high)
{
int mid=(low+high)/2;
if(a[i]>Stack[mid])
low=mid+1;
else
high=mid-1;
}
Stack[low]=a[i];
}
}
cout<<top<<endl;
}return 0;
}
//nyoj 214
nyoj 214的更多相关文章
- NYOJ 214 最长上升子序列nlogn
普通的思路是O(n2)的复杂度,这个题的数据量太大,超时,这时候就得用nlogn的复杂度的算法来做,这个算法的主要思想是只保存有效的序列,即最大递增子序列,然后最后得到数组的长度就是最大子序列.比如序 ...
- nyoj 214 单调递增子序列(二)
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 ,a2...,an}(0<n<=100000),找出单调递增最长子序列,并求出其长度. ...
- nyoj 214——单调递增子序列(二)——————【二分搜索加dp】
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长 ...
- nyoj 214 单调递增子序列(二) 【另类dp】
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 ,a2...,an}(0<n<=100000),找出单调递增最长子序列.并求出其长度 ...
- NYOJ 1007
在博客NYOJ 998 中已经写过计算欧拉函数的三种方法,这里不再赘述. 本题也是对欧拉函数的应用的考查,不过考查了另外一个数论基本定理:如何用欧拉函数求小于n且与n互质所有的正整数的和. 记eule ...
- NYOJ 998
这道题是欧拉函数的使用,这里简要介绍下欧拉函数. 欧拉函数定义为:对于正整数n,欧拉函数是指不超过n且与n互质的正整数的个数. 欧拉函数的性质:1.设n = p1a1p2a2p3a3p4a4...pk ...
- NYOJ 333
http://www.cppblog.com/RyanWang/archive/2009/07/19/90512.aspx?opt=admin 欧拉函数 E(x)表示比x小的且与x互质的正整数的个数. ...
- Centos 7 mysql Buffered warning: Changed limits: max_connections: 214 解决方法
Everytime I restart MySQL I have this warning: [Warning] Buffered warning: Changed limits: max_conne ...
- NYOJ 99单词拼接(有向图的欧拉(回)路)
/* NYOJ 99单词拼接: 思路:欧拉回路或者欧拉路的搜索! 注意:是有向图的!不要当成无向图,否则在在搜索之前的判断中因为判断有无导致不必要的搜索,以致TLE! 有向图的欧拉路:abs(In[i ...
随机推荐
- 从Profile中窥探Unity的内存管理
刨根问底U3D---从Profile中窥探Unity的内存管理 这篇文章包含哪些内容 这篇文章从Unity的Profile组件入手,来探讨一下Unity在开发环境和正式环境中的内存使用发面的一些区别, ...
- could only be replicated to 0 nodes, instead of 1
周末机房断电,然后hadoop爆出如题的错误,解决方案就是关闭所有节点的防火墙,相关命令如下: 查看防火墙状态: /etc/init.d/iptables status 暂时关闭防火墙: /etc/i ...
- go官网教程A Tour of Go
http://tour.golang.org/#1 中文版:http://go-tour-cn.appsp0t.com/#4 package main import ( "fmt" ...
- COJ 0581 4022农夫喂牛
4022农夫喂牛 难度级别:D: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 农夫老张养了N头牛,编号分别从1到N.现在,它们要“用餐”,按 ...
- 【模拟】XMU 1062 山东煎饼
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1062 题目大意: 已知金钱,和各面额钞票张数,问最少可以换成几张. 题目思路: [模拟 ...
- freemarker 时间格式化注意事项
${document.publishDate?string("yyyy-MM-dd")} 取出的是 2015-05-20 ${document.publishDate?string ...
- android 解析文章,通过JSON格式请求传递 的好文章,这里记录一下
http://blog.sina.com.cn/s/blog_8d955f8c0100xv7i.html http://blog.163.com/zhangzheming_282/blog/stati ...
- Convert Sorted Array to Binary Search Tree——LeetCode
Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 题目 ...
- HDOJ 1098 Ignatius's puzzle
Problem Description Ignatius is poor at math,he falls across a puzzle problem,so he has no choice bu ...
- Post/Redirect/Get pattern | PRG 模式
Post/Redirect/Get 是一种 web 开发设计模式,用于防止表单的重复提交. 默认情况,提交 Post 请求到服务器后,如果直接刷新浏览器,会重新在提交一次 Post 请求.在访问电商网 ...