相当于用多个O(nlog(n))LIS来做。

//
// main.cpp
// 160322
//
// Created by 陈加寿 on 16/3/22.
// Copyright © 2016年 chenhuan001. All rights reserved.
// #include <iostream>
#include <stdio.h>
#include <math.h>
#include <vector>
#include <string.h>
#include <algorithm>
using namespace std;
#define N 1100 int a[N],b[N];
vector<int> dp[N]; int main() {
int T;
cin>>T;
while(T--)
{
int n,m;
cin>>n>>m;
for(int i=;i<n;i++)
{
scanf("%d%d",a+i,b+i);
dp[i].clear();
} int ans=;
ans = ;
for(int i=;i<=m;i++)
{
dp[i].push_back(a[]);
}
for(int i=;i<=m;i++)
{
if(a[]>b[])
{
dp[i][]=b[];
}
} vector<int>::iterator p;
for(int i=;i<n;i++)
{
for(int j=m;j>=;j--)
{
if(j!=m)
{
p =lower_bound(dp[j].begin(), dp[j].end(), b[i]);
if(p==dp[j].begin())
{
dp[j+][] = min(dp[j+][],b[i]);
}
else if(p==dp[j].end()) //我这等于最后
{
int sz=dp[j].size();
if(dp[j+].size() == sz)
{
dp[j+].push_back(b[i]);
ans = max(ans,sz+);
}
else dp[j+][sz]=min(dp[j+][sz],b[i]);
}
else
{
int cnt = p-dp[j].begin();//这一步我不知道可不可以这样用。。
dp[j+][cnt] = min(dp[j+][cnt],b[i]);
}
} p = lower_bound(dp[j].begin(), dp[j].end(), a[i]);
if(p==dp[j].begin()) //说明所有数都大于a[i]
{
dp[j][]=a[i];
}
else if(p==dp[j].end())
{
dp[j].push_back(a[i]);
ans = max(ans,(int)dp[j].size());
}
else
{
*p = a[i];
}
}
} cout<<ans<<endl;
}
return ;
}

hdu5125(LIS)的更多相关文章

  1. Lis日常维护

    1.[问题]护士站打印LIs条码,出来是PDF格式的 [解决]在文件夹Client\NeusoftLis\Xml\Print.xml中把BarcodePrint Name的值改成安装的斑马打印机名(不 ...

  2. uva10635 LIS

    Prince and PrincessInput: Standard Input Output: Standard Output Time Limit: 3 Seconds In an n x n c ...

  3. Codeforces 486E LIS of Sequence 题解

    题目大意: 一个序列,问其中每一个元素是否为所有最长上升子序列中的元素或是几个但不是所有最长上升子序列中的元素或一个最长上升子序列都不是. 思路: 求以每一个元素为开头和结尾的最长上升子序列长度,若两 ...

  4. 出操队形(LIS)

    题目来源:微策略2013年校园招聘面试一面试题 题目描述: 在读高中的时候,每天早上学校都要组织全校的师生进行跑步来锻炼身体,每当出操令吹响时,大家就开始往楼下跑了,然后身高矮的排在队伍的前面,身高较 ...

  5. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  6. [tem]Longest Increasing Subsequence(LIS)

    Longest Increasing Subsequence(LIS) 一个美丽的名字 非常经典的线性结构dp [朴素]:O(n^2) d(i)=max{0,d(j) :j<i&& ...

  7. 从LIS问题浅谈动态规划

    今天以LIS问题切入动态规划,现在做一些简单的总结. LIS问题: http://www.cnblogs.com/Booble/archive/2010/11/27/1889482.html

  8. [noip科普]关于LIS和一类可以用树状数组优化的DP

    预备知识 DP(Dynamic Programming):一种以无后效性的状态转移为基础的算法,我们可以将其不严谨地先理解为递推.例如斐波那契数列的递推求法可以不严谨地认为是DP.当然DP的状态也可以 ...

  9. Hdu 3564 Another LIS 线段树+LIS

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...

随机推荐

  1. selinux 是什么 (Linux)

    SElinux是Linux安全加强工具.关闭用setenforce 0或者修改文件vim /etc/sysconfig/selinux 把SELINUX=enforcing 改为 SELINUX=di ...

  2. 用C++实现文件压缩(1.5)

    今天主要做的就是,将完成huffman编码的数据以二进制的形式写入文件中.这是个挺苦逼的活. 不过好在我以前玩过一段时间的单片机,所有能够较好的实现位运算,一位一位的将数据存放到缓冲区中,然后统一写入 ...

  3. 倍福TwinCAT(贝福Beckhoff)应用教程11.1 TwinCAT应用小程序1 贝福IO模块介绍

    EL1002,EL1004,EL1008都是数字输入模块(2个点,4个点,8个点),输入高的范围是15V到30V,低的范围是-3V到5V         EL2002,EL2004,EL2008都是数 ...

  4. CentOS系统使用yum安装配置MariaDB数据库

    http://www.server110.com/mariadb/201310/2670.html 1.在 /etc/yum.repos.d/ 下建立 MariaDB.repo,内容如下:[azure ...

  5. JS动态插入HTML后不能执行后续JQUERY操作

    通过js追加的html 发现 不能点击 执行函数   普通绑定事件:$('.btn1').click(function(){}绑定 事件委托   解决方法: $("body").d ...

  6. tomcat的安装、配置

    简单介绍 Tomcat server是一个免费的开放源码的Web 应用server,属于轻量级应用server, 在中小型系统和并发訪问用户不是非常多的场合下被普遍使用,是开发和调试JSP 程序的首选 ...

  7. MySQL:系列合集

    MySQL一:初识数据库 MySQL二:库操作 MySQL三:存储引擎 MySQL四:表操作 MySQL五:数据操作 MySQL六:索引原理与慢查询优化 MySQL七:数据备份 MySQL八:视图.触 ...

  8. string::find_last_of

    今天在代码中用到string的这个方法,一不小心就用错了. 这是http://www.cplusplus.com/关于这个方法的解释. Find character in string from th ...

  9. iOS开发 多屏尺的自动适配(转)

    [iOS开发]多屏尺的自动适配 AutoLayout (纯代码方式) (2014-09-19 09:35:47) 转载▼ 标签: autolayout ios开发 xcode ui 分类: Xcode ...

  10. flume 中的 hdfs sink round 和roll

    http://blog.csdn.net/kntao/article/details/49278239 http://flume.apache.org/FlumeUserGuide.html#exec ...