相当于用多个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. apache添加mod_limitipconn限制单个ip并发连接数

    一.基本 官网:http://dominia.org/djao/limitipconn2.html 二.安装 1.下载#wget http://dominia.org/djao/limit/mod_l ...

  2. spring中使用 @value 简化配置文件的读取

    1.在applicationContext.xml文件中配置properties文件 <bean id="propertyConfigurer" class="or ...

  3. Appstore 提交Ipad 和Iphone版

  4. Django——Django,uwsgi Nginx组合建站

    近来抽时间看了点关于python的资料,试着架设了下运行环境,于是写了本文记录之. 用到的软件: Django-1.6.1 uwsgi-2.0.7 python-3.3.3 nginx-1.7.7 安 ...

  5. Linux——下常用程序的代理服务器(proxy)配置

    Linux下有很多程序都只有命令行接口,对于这类程序,它们通过代理服务器(proxy)访问网络的方式也不尽相同.在本文中Easwy总结了一些常用Linux程序配置代理服务器的方法. [ 通用代理服务器 ...

  6. java IO,bufferedReader类

    1,掌握bufferedreader类作用 2,掌握键盘输入的基本格式. Buffer:表示缓冲区,之前的StringBuffer,缓冲区中的内容可以更改,可以提高效率. 如果要想接收任意长度的数据, ...

  7. 使用eclipse转换普通项目为web项目

    1.在项目上,进入属性(properties) 2.左侧列表项目中选择“Project Facets”,在右侧选择“Dynamic Web Module”和"Java",(如果要修 ...

  8. Python 的函数

    Python 函数: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你 ...

  9. js获取本页的来源地址

    document.referrer 该属性可以获取到文档的载入地址 需要注意必须是通过改变localtion的href属性或a标签跳转才能获取到 否者将获取到空字符串

  10. git 命令使用速查手册( 个人版)

    1. 克隆远程库 git clone   repository_address 通过 git clone 获取的git库只是远程库中的当前工作分支,如果想获取其它分支信息,可参考下面. 2. 查看远程 ...