hdu5125(LIS)
相当于用多个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)的更多相关文章
- Lis日常维护
1.[问题]护士站打印LIs条码,出来是PDF格式的 [解决]在文件夹Client\NeusoftLis\Xml\Print.xml中把BarcodePrint Name的值改成安装的斑马打印机名(不 ...
- uva10635 LIS
Prince and PrincessInput: Standard Input Output: Standard Output Time Limit: 3 Seconds In an n x n c ...
- Codeforces 486E LIS of Sequence 题解
题目大意: 一个序列,问其中每一个元素是否为所有最长上升子序列中的元素或是几个但不是所有最长上升子序列中的元素或一个最长上升子序列都不是. 思路: 求以每一个元素为开头和结尾的最长上升子序列长度,若两 ...
- 出操队形(LIS)
题目来源:微策略2013年校园招聘面试一面试题 题目描述: 在读高中的时候,每天早上学校都要组织全校的师生进行跑步来锻炼身体,每当出操令吹响时,大家就开始往楼下跑了,然后身高矮的排在队伍的前面,身高较 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
- [tem]Longest Increasing Subsequence(LIS)
Longest Increasing Subsequence(LIS) 一个美丽的名字 非常经典的线性结构dp [朴素]:O(n^2) d(i)=max{0,d(j) :j<i&& ...
- 从LIS问题浅谈动态规划
今天以LIS问题切入动态规划,现在做一些简单的总结. LIS问题: http://www.cnblogs.com/Booble/archive/2010/11/27/1889482.html
- [noip科普]关于LIS和一类可以用树状数组优化的DP
预备知识 DP(Dynamic Programming):一种以无后效性的状态转移为基础的算法,我们可以将其不严谨地先理解为递推.例如斐波那契数列的递推求法可以不严谨地认为是DP.当然DP的状态也可以 ...
- Hdu 3564 Another LIS 线段树+LIS
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...
随机推荐
- Linux网络配置之虚拟网卡的配置(ubuntu 16.04)案例
sudo vim /etc/network/interfaces 标红的名称一定要一致 sudo vim /etc/resolv.conf 配置外网的ip(默认可以不填,系统自己获取)
- SQL Server 高性能写入的一些经验总结
转自:http://www.jb51.net/article/31162.htm 本篇博文将针对一些常用的数据库性能调休方法进行介绍,而且,为了编写高效的SQL代码,我们需要掌握一些基本代码优化的技巧 ...
- 传统项目目录结构下maven+junit+junitReport
<build> <defaultGoal>compile</defaultGoal> <sourceDirectory>${basedir}/src&l ...
- 笛卡尔树 POJ ——1785 Binary Search Heap Construction
相应POJ 题目:点击打开链接 Binary Search Heap Construction Time Limit: 2000MS Memory Limit: 30000K Total Subm ...
- 【Python】help与dir的用法
当你给dir()提供一个模块名字时,它返回在那个模块中定义的名字的列表.当没有为其提供参数时, 它返回当前模块中定义的名字的列表. 如果您需要快速获取任何的Python函数或语句的信息,那么您可以使用 ...
- C语言文件操作函数大全(超详细)
C语言文件操作函数大全(超详细) 作者: 字体:[增加 减小] 类型:转载 本篇文章是对C语言中的文件操作函数进行了详细的总结分析,需要的朋友参考下 fopen(打开文件)相关函数 open,fc ...
- struts上传文件 血案
记录一个图片上传之后没有后缀 拓展名问题 平常我们查询数据都是 fileImage=fileImageService.getQuery(); 让entity等于它 那么fileImage.getF ...
- RabbitMQ 学习笔记(一)特点
RabbitMQ 的具体特点 可靠性: RabbitMQ 使用一些机制来保证可靠性, 如持久化.传输确认及发布确认等. 令灵活的路由: 在消息进入队列之前,通过交换器来路由消息.对于典型的路由功能,R ...
- Spark调研笔记第6篇 - Spark编程实战FAQ
本文主要记录我使用Spark以来遇到的一些典型问题及其解决的方法,希望对遇到相同问题的同学们有所帮助. 1. Spark环境或配置相关 Q: Sparkclient配置文件spark-defaults ...
- 使用BMap.Label给百度地图的BMap.Marker上加上数字序号
marker = new BMap.Marker(pointList[i]) marker.setLabel(getNumberLabel(i)); function getNumberLabel(n ...