Bridging signals ZOJ 3627 POJ1631 HDU1950
题意:给出一个从1-n的数字排列,求最长上升子序列长度。
直接说解法吧。新开一个数组d,d[i]表示的是能构成长度为i的上升子序列的在原序列中最后的那个数值。程序的主要过程:当循环到第i个的时候,如果原序列中的第i个数值大于之前d中保存的上升序列中长度最长的那个最后的值,那么,就把当前记录的最长的子序列的长度+1,然后把这个值加到d的末尾;如果不大于,那么就从前面二分找到这个值,d中的序列一定是有序的,找到d总刚刚大于它的那个值,替换掉。
#include <cstdio>
#include <string.h>
#include <algorithm>
using namespace std;
int main(){
int cir,n,ans;
int d[40000];
int a[40000];
scanf("%d",&cir);
for(int i=1;i<=cir;i++){
scanf("%d",&n);
for(int j=1;j<=n;j++){//init
scanf("%d",&a[j]);
}
d[0]=0;
ans=1;d[1]=a[1];
int temp;
for(int j=2;j<=n;j++){
if(a[j]>d[ans])d[++ans]=a[j];
else {
temp=lower_bound(d+1,d+ans+1,a[j])-d;
//从第一个开始;最后要-d
d[temp]=a[j];
}
}
printf("%d\n",ans);
}
}
Bridging signals ZOJ 3627 POJ1631 HDU1950的更多相关文章
- hdu----(1950)Bridging signals(最长递增子序列 (LIS) )
Bridging signals Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Bridging signals(NlogN最长上升子序列)
Bridging signals Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- POJ 1631 Bridging signals
Bridging signals Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9441 Accepted: 5166 ...
- poj 1631 Bridging signals (二分||DP||最长递增子序列)
Bridging signals Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9234 Accepted: 5037 ...
- OpenJudge/Poj 1631 Bridging signals
1.链接地址: http://poj.org/problem?id=1631 http://bailian.openjudge.cn/practice/1631 2.题目: Bridging sign ...
- POJ 1631 Bridging signals(LIS O(nlogn)算法)
Bridging signals Description 'Oh no, they've done it again', cries the chief designer at the Waferla ...
- hdoj 1950 Bridging signals【二分求最大上升子序列长度】【LIS】
Bridging signals Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Bridging signals(二分 二分+stl dp)
欢迎参加——每周六晚的BestCoder(有米!) Bridging signals Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 6 ...
- POJ 1631 Bridging signals(LIS 二分法 高速方法)
Language: Default Bridging signals Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1076 ...
随机推荐
- 在HTML5中怎样实现Canvas阴影效果
该文章是由e良师益友技术部小陈原创作品,转载是请注明来源,谢谢! 今天我给大家介绍一下在HTML5中怎样实现Canvas阴影效果,我们知道现在HTML5的Canvas阴影也经常使用的,这个就是HTML ...
- 隐藏win7盘符
1.隐藏盘符: //新建注册表,隐藏X盘符 int regeditme() { HKEY hkey; DWORD dwLastError= ;//隐藏X盘2^25 J:2^9=512 X:盘符与挂载的 ...
- 解决Scala异常处理java.lang.OutOfMemoryError: Java heap space error
需求:百万.千万.4千万级日志对设备进行除重环境:设备内存64G,scala单机版运行shell文件日志:20G 48000000.log4.0G 10000000.log396M 1000000.l ...
- JavaScript jQuery 事件、动画、扩展
事件 因为JavaScript在浏览器中以单线程模式运行,页面加载后,一旦页面上所有的JavaScript代码被执行完后,就只能依赖触发事件来执行JavaScript代码. 浏览器在接收到用户的鼠标或 ...
- 【Qt】QT5 获取IP地址
QT获取本机IP地址 #include <QtNetwork/QHostAddress> #include <QtNetwork/QNetworkInterface> #inc ...
- 玄机网C#论坛测试小游戏
http://files.cnblogs.com/ro4ters/EasyGame.zip http://www.xuanjics.com/thread-39-1-1.html 具体活动地址
- TDBAdvGrid 只读状态下复制功能
DataSource1.AutoEdit := false;
- IEEE 754 浮点数的四种舍入方式
四种舍入方向: 向最接近的可表示的值:当有两个最接近的可表示的值时首选"偶数"值:向负无穷大(向下):向正无穷大(向上)以及向0(截断). 说明:默认模式是最近舍入(Round t ...
- c 递归函数浅析
所谓递归,简而言之就是应用程序自身调用自身,以实现层次数据结构的查询和访问. 递归的使用可以使代码更简洁清晰,可读性更好(对于初学者到不见得),但由于递归需要系统堆栈,所以空间消耗要比非递归代码要大很 ...
- 选中excel中的对象
2007在查找和选择中点击“选择对象”,然后再全选全个sheet(ctrl+a)就可以看到了. 2010 “选择对象”在 开始——查找和选择——选择对象