题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5773(好题)

题意:给你N个数字,其中0可以变成任意整数,那么求最长上升子序列的最长长度.

个人感想:
题解大神的思路就是牛逼…只能%%%%了…这道题我看了题解其实我也不太明白为什么…我才发现原来我一直在LIS的误区中,我对它理解得不够深啊.然后我问了我队友当时是怎么做的.我才明白到原来O(nlogn)求LIS的数组中存的也是每个长度对应的最小尾数!!我只是自然的理解为替换就是对了,反正实在浅显,直接给我当头一棒.好吧吹完了,来讲一下想法,我也要好好的储存这道例题.


给你这样的一个序列,我们先往O(nlogn)的想法去做.

假设我们现在枚举到第3位,很明显,
长度为1最小尾数是1
长度为2最小尾数是2
长度为3最小尾数是3
当我们遇到0了,因为0可以变成任意的整数.

长度为1最小尾数是-INF
长度为2最小尾数是2
长度为3最小尾数是3
长度为4最小尾数是4
这就是0对前面几个数的影响.
同样的再来一个0.

长度为1最小尾数是-INF
长度为2最小尾数是-INF
长度为3最小尾数是3
长度为4最小尾数是4
长度为5最小尾数是5
这些都是对于还没有枚举的数字**(4…)来说的.大家应该也明白.
那么对于后面的数字也就莫非就是找到能够接上
最大长度小于本身的尾数了**.,可是我们发现如果按照这样子DP的话显然是不行的,难道还得插入**-INF吗?显然我们可以换一种思路,既然我们前面是使这尾数+1**,那么我每遇到一个非0我就使后面的数减取前面的0的个数不就好了!,最后的答案数+回0的个数,就是题解了

可以发现,我减少4-2=2,从前面更新长度的最小尾数,必然是答案了…我这样讲应该明白了把

分析:最长上升子序列变形.

代码:

/* Author:GavinjouElephant* Title:* Number:* main meanning:****///#define OUT
#include <iostream>
using namespace std;
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <sstream>
#include <cctype>
#include <vector>
#include <set>
#include <cstdlib>
#include <map>
#include <queue>
//#include<initializer_list>
//#include <windows.h>
//#include <fstream>
//#include <conio.h>
#define MaxN 0x7fffffff
#define MinN -0x7fffffff
#define Clear(x) memset(x,0,sizeof(x))
const int INF=0x3f3f3f3f;
int T;
const int maxn=1e5+10;
int N;
int s[maxn];
int dp[maxn];
void init()
{memset(dp,0x3f,sizeof(dp));
}
int main()
{
#ifdef OUTfreopen("coco.txt","r",stdin);freopen("lala.txt","w",stdout);
#endifscanf("%d",&T);for(int cas=1;cas<=T;cas++){init();scanf("%d",&N);/*for(int i=0;i<N;i++){cout<<dp[i]<<" ";}cout<<endl;*/int cnt=0;for(int i=0;i<N;i++){scanf("%d",&s[i]);}for(int i=0;i<N;i++){if(!s[i]){cnt++;}else{s[i]-=cnt;*lower_bound(dp,dp+N,s[i])=s[i];}}printf("Case #%d: %d\n",cas,lower_bound(dp,dp+N,INF)-dp+cnt);}return 0;
}

『HDU 5773』The All-purpose Zero相关推荐

  1. 『HDU 5834』Magic boy Bi Luo with his excited tree

    转载声明:http://blog.csdn.net/cqu_hyx/article/details/52213912 题目链接:http://acm.hdu.edu.cn/showproblem.ph ...

  2. 洛谷 2 月月赛 I 『MdOI R4』 (Div2) A ~ D 四题全,也许会有六题,超高质量题解 (Div.1E、F下辈子一定补)【每日亿题2 / 9】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A.P7337 『MdOI R4』Fun B.P7338 『MdOI R4』Color C.P7 ...

  3. 『中级篇』docker容器安装wordpress(37)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker容器安装wordpress(37) 第一节的时候我就部署过wordpress,可能很多老铁一头雾水不知道 ...

  4. linux网络命名空间详解,『中级篇』 Linux网络命名空间(25)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』 Linux网络命名空间(25) docker底层技术,非常重要的关于namespace,network的names ...

  5. [日推荐]『保养汽车』爱车的专职管家

    2019独角兽企业重金招聘Python工程师标准>>> 你的爱车需要做保养啦! 想要挑一个优惠力度大.口碑好的4S店,又嫌电话预约太麻烦? 这个小程序你一定会爱不释手-- 保养汽车 ...

  6. 『高级篇』docker之APIGateway(17)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『高级篇』docker之APIGateway(17) 这次说最后一个模块APIGateway,他的功能就是将我们客户端的请求统 ...

  7. 『中级篇』k8s基础网络Cluster Network(66)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』k8s基础网络Cluster Network(66) 通过国人大神的一键安装k8s集群安装了3个master节点和3 ...

  8. 『中级篇』Minikube快速搭建K8S单节点环境(61)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』Minikube快速搭建K8S单节点环境(61) 去介绍k8s的集群安装,本地搭建一个k8s的集群. 不会科学上网的 ...

  9. 『高级篇』docker容器来说什么是微服务(三)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『高级篇』docker容器来说什么是微服务(三) 上一节说了单体架构,单体架构也无法适应我们的服务,来说说微服务,看能否解决单 ...

  10. 『中级篇』docker之CI/CD持续集成-项目生成镜像(76)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker之CI/CD持续集成-项目生成镜像(76) 开始想用docker registry做私有镜像库,后来放弃 ...

最新文章

  1. Azure SQL 数据库引入了新的服务级别
  2. C# AE放大缩小地图全局显示功能
  3. mkdir和mkdir-p的区别
  4. 牛客题霸 [二叉树的最大深度]C++题解/答案
  5. javaone_JavaOne 2012:向上,向上和向外:使用Akka扩展软件
  6. opencv为matlab,OpenCV与matlab部分函数的对应关系(转)
  7. idea通过数据库生成实体类插件_idea数据库生成实体类
  8. SVN工作笔记006---解决TortoiseSVN中out of date问题的一个方法
  9. centOS7安装nodejs(8.4.0)(详细步骤)
  10. JavaScript 的函数式编程与面向对象编程区别在哪?
  11. 【评测机】评测时报错cc1plus: fatal error: /xx/xx/main.cpp: Permission denied compilation terminated.的解决方法...
  12. 20169218 2016-2017-2 《网络攻防实践》第三周学习总结
  13. 求两个等长升序序列的中位数
  14. GIS学习第一课:USGS遥感数据下载
  15. 计算机毕业设计之 [含论文+答辩PPT+任务书+中期检查表+源码等]S2SH动漫论坛[包运行成功]
  16. 阻击 瑞星 和 雅虎助手 的 SVOHOST.exe(第2版)
  17. Python基础 模块化编程(模块的导入)
  18. BlueCoat ProxySG Attack Detection功能
  19. 互联网日报 | 华为鸿蒙OS 2.0正式发布;微信小程序日活用户超4亿;百胜中国回港上市首日破发...
  20. 线性代数学习笔记4-1:线性方程组的数学和几何意义、零空间/解空间/核

热门文章

  1. 超大图片的缩放算法(撑爆内存的那种)
  2. CSS媒体查询(@media)全面解析
  3. 【IoT】产品三问:什么是产品?什么是产品管理?产品经理职责是什么?
  4. 【oracle】函数minus
  5. 实例分析神经网络传播过程
  6. 怎样将linux系统打包成iso文件,封装linux系统成iso文件
  7. 存储系统概述——SRAM静态随机存储器
  8. 金蝶K3工资模块个税计算公式
  9. 《菊与刀》读后感作文5000字
  10. 微信与企业微信消息如何互通?