题意:类似于套娃娃,问最少需要多少个拦截系统。

思路:

假设已经有m个导弹拦截序列

r1:x11>=x12>=x13>=...>=x1n

r1:x21>=x22>=x23>=...>=x2n
.

.

rm:xm1>=xm2>=xm3>=...>=xmn

则必定有有一个序列x1i<x2i<x3i<...<xmi,证明:

若rx中最小比他后边某个序列的所有元素都要大的话,这两个序列必定能合成一个序列。

如r1:8,5,4

 r2:3,2,1

因此序列x1i<x2i<x3i<...<xmi的长度就是所求的长度。

另,原序列的最长严格上升序列的长度的就是该序列的长度。证明:

若存在最长严格上升子序列:xj1<xj2<xj3<...<xjk

很明显,则xj2与xj1不可能属于同一个r,后同。故得证。

故原问题就转换成求最长严格上升子序列的长度。

类似的题目还有:http://acm.hdu.edu.cn/showproblem.php?pid=1677

以上结论的证明是本人第一次完全靠自己写的证明,必定有所纰漏,甚至完全错误。写在此并不是为了让看官们背住结论就算了,更希望许多像我一样的菜鸟能够自己动手证明一些东西,这样你对于这个知识点的理解必定会上一层楼。希望大神们指正。

#include<stdio.h>
#include<string.h>
const int N=;
int a,d[N];
int main(){
int n,i,ans;
while(~scanf("%d",&n)){
d[]=-;ans=;
for(i=;i<=n;i++){
scanf("%d",&a);
if(a>d[ans]){
d[++ans]=a;
}else{
int l=,r=ans;
while(l<=r){
int mid=(l+r)>>;
if(d[mid]>a) r=mid-;
else l=mid+;
}
d[l]=a;
}
}
printf("%d\n",ans);
}
return ;
}

HDU 1257 最少拦截系统【LIS】的更多相关文章

  1. HDU 1257 最少拦截系统 最长递增子序列

    HDU 1257 最少拦截系统 最长递增子序列 题意 这个题的意思是说给你\(n\)个数,让你找到他最长的并且递增的子序列\((LIS)\).这里和最长公共子序列一样\((LCS)\)一样,子序列只要 ...

  2. HDU 1257 最少拦截系统(贪心 or LIS)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1257 最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)   ...

  3. HDU 1257最少拦截系统[动态规划]

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1257                                                 最 ...

  4. hdu 1257 最少拦截系统【贪心 || DP——LIS】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=1257 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  5. HDU 1257——最少拦截系统——————【LIS变型题】

    最少拦截系统 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  6. HDU 1257 最少拦截系统(Dilworth定理+LIS)

    最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  7. POJ - 2533 Longest Ordered Subsequence与HDU - 1257 最少拦截系统 DP+贪心(最长上升子序列及最少序列个数)(LIS)

    Longest Ordered Subsequence A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let ...

  8. HDU 1257 最少拦截系统 (DP || 贪心)

    最少拦截系统 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  9. hdu 1257 最少拦截系统(动态规划 / 贪心)

    最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  10. hdu 1257最少拦截系统

    最少拦截系统 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的 ...

随机推荐

  1. Java IO之字节流

    Java中的输入是指从数据源等读到Java程序中,这里的数据源可以是文件,内存或网络连接,输出则是指从Java程序中写到目的地. 输入输出流可以分为以下几种类型(暂时不考虑File类) 类名 中文名 ...

  2. css中定位

    一切皆为框div.h1或p元素尝尝被称为块级元素.这意味着这些元素显示为一块内容,即“块框”.与之相反,span和strong等元素称为“称为”行内元素“,这是因为他们的内容显示在行中,即”行内框“. ...

  3. C标准头文件<stdio.h>

    是很多人学C语言接触的第一个头文件,顾名思义,stdio就是"标准输入输出",其中声明了一组关于输入输出的类型,宏和函数,其中就包括了打印著名的"hello,world! ...

  4. WNMP集成环境下配置thinkPHP

    在网上查了许多解决方法,下面是自己测试过能行的方法,只需在nginx.conf文件添加内容就可以了. 打开nginx.conf文件 ## Try the requested URI as files ...

  5. 使用HBaseShellPro操作Hadoop 2系列发行版CDH4.4

    前言 对于hadoop,hbase由于项目紧张原因好几个月没有时间认真的来总结下了,最近有一些空,就来继续的把项目中用到的一些技术实际的写出来,动动手,好久没有写东西了,都生疏了,说起hadoop,公 ...

  6. Logging configuration

    The Play logger is built on Log4j. Since most Java libraries use Log4j or a wrapper able to use Log4 ...

  7. 寻觅[Getting Answers]

    原文:http://www.mikeash.com/getting_answers.html 作者:mike@mikeash.com 译者:今天早上起床,有幸读到这篇文章,觉得它是我们在这个世界上的基 ...

  8. cocos2d-x3.3 以前版本 工程Xcode6编译时的问题

    Undefined symbols for architecture i386: "_fwrite$UNIX2003", referenced from: _unixErrorHa ...

  9. plist的读取和写入

    // 从plist中读取数组数据 let arrPath = Bundle.main.path(forResource: "ArrayPList", ofType: "p ...

  10. Android AsyncTask 深度理解、简单封装、任务队列分析、自定义线程池

    前言:由于最近在做SDK的功能,需要设计线程池.看了很多资料不知道从何开始着手,突然发现了AsyncTask有对线程池的封装,so,就拿它开刀,本文将从AsyncTask的基本用法,到简单的封装,再到 ...