题目大意:

https://www.luogu.org/problemnew/show/P1020

Dliworth有两个互相对偶的定理:
U的链划分使用的最少集合数,等于它的最大反链长度。(1)
U的反链划分使用的最少集合数,等于它的最大链长度。(2)

更详细的讲解

#include <bits/stdc++.h>
using namespace std;
int a[];
int dp1[],dp2[];
int f1[],f2[];
/// 将 对应长度的最后一位的下标 存入f1[] f2[]中
/* 即若 2 2 4 3 对应下标为 0 1 2 3
则长度为 1 2 3 时
f[]对应为 f[1] f[2] f[3]
0 1 3
2 2 2 2 2 3
*/
int main()
{
int k=;
while(~scanf("%d",&a[++k])) ;
memset(f1,,sizeof(f1)); memset(f2,,sizeof(f2));
int t1=,t2=;
for(int i=;i<k;i++) {
dp1[i]=dp2[i]=;
for(int j=t1;j>;j--)
if(a[f1[j]]>=a[i]) {
dp1[i]=j+; break;
}
t1=max(t1,dp1[i]);
if(!f1[dp1[i]]) f1[dp1[i]]=i;
else if(a[f1[dp1[i]]]<a[i]) f1[dp1[i]]=i;
for(int j=t2;j>;j--)
if(a[f2[j]]<a[i]) {
dp2[i]=j+; break;
}
t2=max(t2,dp2[i]);
if(!f2[dp2[i]]) f2[dp2[i]]=i;
else if(a[f2[dp2[i]]]>a[i]) f2[dp2[i]]=i;
}
printf("%d\n%d\n",t1,t2); return ;
}

P1020 导弹拦截 /// DP Dilworth定理 LIS、LDS优化的更多相关文章

  1. 洛谷 P1020 导弹拦截(dp+最长上升子序列变形)

    传送门:Problem 1020 https://www.cnblogs.com/violet-acmer/p/9852294.html 讲解此题前,先谈谈何为最长上升子序列,以及求法: 一.相关概念 ...

  2. 导弹拦截与Dilworth定理

    这两天被Dilworth.链和反链搞到头昏脑胀,终于有点眉目,现在来总结一下. Dilworth定理说的是:对于一个偏序集,其最少链划分数等于其最长反链的长度. Dilworth定理的对偶定理说的是: ...

  3. P1020 导弹拦截 dp 树状数组维护最长升序列

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

  4. 导弹拦截( 二分+dilworth定理)

    https://www.luogu.org/problemnew/show/P1020 原题 接下来是dilworth定理 https://blog.csdn.net/u011676717/artic ...

  5. luogu P1020 导弹拦截 x

    首先上题目~ luogu P1020 导弹拦截 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都 ...

  6. p1020导弹拦截

    传送门 P1020导弹拦截 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度 ...

  7. codevs1044 拦截导弹==洛谷 P1020 导弹拦截

    P1020 导弹拦截 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天 ...

  8. 【题解】P1020 导弹拦截

    [题解]P1020 导弹拦截 从n^2到nlogn 第二问就是贪心,不多说 第一问: 简化题意:求最长不下降子序列 普通n^2: for (int i = 1; i <= n; i++) for ...

  9. 洛谷P1020 导弹拦截 题解 LIS扩展题 Dilworth定理

    题目链接:https://www.luogu.com.cn/problem/P1020 题目大意: 给你一串数,求: 这串数的最长不上升子序列的长度: 最少划分成多少个子序列是的这些子序列都是不上升子 ...

随机推荐

  1. 约数个数求和+线性筛约数——bzoj3994

    这题首先要会线性筛约数个数,并求出前缀和 bool vis[maxn]; int mm,mu[maxn],prime[maxn],num[maxn],sum[maxn],d[maxn],sum1[ma ...

  2. 利用NHibernate与MySQL数据库交互

    本文章使用Visual Studio作为开发工具,并建立在已经安装MySQL数据库的前提. NHibernate是一个面向.NET环境的对象/关系数据库映射工具.官网:http://nhibernat ...

  3. C/Python/Java环境变量配置

    链接 全图预览: Java: 只需添加下面三个环境变量即可使用Java.对照这我的添加就行. CLASSPATH的内容: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\li ...

  4. iOS 7.1的Safari为meta标签新增minimal-ui属性,在网页加载时隐藏地址栏与导航栏

    在 iOS 7.1 的 Safari 中为 meta 标签新增 minimal-ui 属性,让网页在加载时便可隐藏顶部的地址栏与底部的导航栏. 如何实现?你只需将“minimal-ui”加入 view ...

  5. nodejs--express安装失败的原因

    1.检查更新所有的npm ,jade,或者ejs. 2.在用jade或ejs也是有区别的,jade适合个人秀,ejs更实用与商务. 3.express在4.+之后的版本都分离了,推荐用3.+的版本稳定 ...

  6. Hadoop安装成功之后,访问不了web界面的50070端口怎么解决?

    Hadoop安装成功之后,访问不了web界面的50070端口 先查看端口是否启用 [hadoop@s128 sbin]$ netstat -ano |grep 50070 然后查看防火墙的状态,是否关 ...

  7. 【POJ】2492 A Bug's Life

    题目链接:http://poj.org/problem?id=2492 题意:给你n个虫子,m组实验.让你帮科学家找一下有没有虫子是同性恋. 题解:假设x是一个性别,x+n为另一个性别.如果在同性的集 ...

  8. 国行iphone第一次安装APP网络状况

    国行手机第一次安装APP,会有请求网络权限的一个弹框出现,在这期间APP是没有任何网络连接的. 想必大部分APP的需求和这个逻辑有冲突. 先推荐一个链接:http://www.cocoachina.c ...

  9. mysql的双主模式

    mysql主主复制配置 server1 ip:192.168.0.231server2 ip:192.168.0.234 更改两台主机的mysql配置文件vim /etc/my.cnfserver1添 ...

  10. Python_pymysql

    pymysql安装:pip3 install pymysql   第一个实例:连接数据库进行用户验证 条件:数据库中已存在一个用户表,包含用户名.密码 import pymysql user = in ...