HDU 3564 Another LIS
题意:
有一个起初是空的序列。我们开始在序列中添加从1到N的数字,每次我们只在特定位置向序列添加一个数字。现在,我们想知道每次添加后LIS(最长上升子序列)的长度。
题解:
一个神奇的LIS题,题解见附件
#pragma GCC optimize (4) #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn=100000+10; #define min(x,y) ((x)<(y)?(x):(y)) #define max(x,y) ((x)>(y)?(x):(y)) namespace GET{char ch;inline char read(){#define MAX 10000000static char buf[MAX],*s,*t;if(s==t){t=(s=buf)+fread(buf,1,MAX,stdin);if(s==t)return EOF;}return *s++;}// #define getchar readtemplate <typename T>inline void Read(T &x){while(ch<'0'||ch>'9')ch=getchar();x=ch-'0';ch=getchar();while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^'0');ch=getchar();}}inline void Write(int x){if(x>10)Write(x/10);putchar(x%10+'0');} } using namespace GET; struct Tree{int left,right;int sum; }a[maxn<<2]; int n,ans; int A[maxn],Low[maxn],val[maxn]; void Init(); void LIS(); void Pushup(int); void Build(int,int,int); void Update(int,int,int); signed main(){// freopen("in.cpp","r",stdin); Init();return 0; } void Init(){Read(n);Build(1,1,n);for(int i=1;i<=n;i++)Read(A[i]);for(int i=n;i>=1;i--)Update(1,i,A[i]+1);LIS(); } void LIS(){Low[1]=val[1];ans=1;//val记录最终的序列printf("%d\n",ans );for(int i=2;i<=n;i++){//接下来的就是二分求LISint x=lower_bound(Low+1,Low+1+ans,val[i])-Low;ans=max(x,ans);Low[x]=val[i];printf("%d\n",ans);} } void Pushup(int u){a[u].sum=a[u<<1].sum+a[u<<1|1].sum; } void Build(int u,int left,int right){a[u].left=left;a[u].right=right;if(left==right){a[u].sum=1;return;}int mid=(left+right)>>1;Build(u<<1,left,mid);Build(u<<1|1,mid+1,right);Pushup(u); } void Update(int u,int key,int p){if(a[u].left==a[u].right){val[key]=a[u].left;a[u].sum=0;return;}a[u].sum--;int mid=(a[u].left+a[u].right)>>1;if(a[u<<1].sum>=p)Update(u<<1,key,p);else Update(u<<1|1,key,p-a[u<<1].sum); }
转载于:https://www.cnblogs.com/holy-unicorn/p/9510360.html
HDU 3564 Another LIS相关推荐
- HDU - 3564 Another LIS(LIS+线段树)
http://acm.hdu.edu.cn/showproblem.php?pid=3564 题意 给出1~n的插入顺序,要求每次插入之后的LIS 分析 首先用线段树还原出最终序列.因为插入的顺序是按 ...
- hdu 3564(线段树+LIS)
题意:给出1~n的插入顺序,要求每次插入之后的LIS 解题思路:这道题确实挺难想的,我最开始想用树状数组每插入一个数就更新一次,如果这么想,那么你就输了.它这里的想法是先将1-n的最终位置都保存起来, ...
- inline-block什么意思中文_block,inline和inline-block概念和区别
总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ...
- linux判断tomcat状态,LINUX下如何查看tomcat运行状态,判断其是否启动
1,查看Tomcat启动日志. ${catalina_home}\logs [root@iZ25b4ffkfaZ logs]# tail -f catalina.out Sep 10, 2015 11 ...
- hdu 5087(LIS变形)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5087 解题思路:这道题其实仔细想想很简单,次长LIS只有两种可能,一种就是等于LIS-1,一种就是LI ...
- 【HDU 4352】 XHXJ's LIS (数位DP+状态压缩+LIS)
XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU 5773 The All-purpose Zero(O(nlgn)求LIS)
http://acm.hdu.edu.cn/showproblem.php?pid=5773 题意: 求LIS,其中的0可以看做任何数. 思路: 因为0可以看做任何数,所以我们可以先不管0,先求一遍L ...
- HDU 4352 XHXJ's LIS(*数位DP 记忆化搜索 待整理)
XHXJ's LIS HDU - 4352 #define xhxj (Xin Hang senior sister(学姐)) If you do not know xhxj, then caref ...
- HDU 4521 小明系列问题——小明序列 LIS+动态规划
HDU 4521小明系列问题--小明序列 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u ...
最新文章
- Boost 编译链接
- Python学习笔记——常量和变量
- java把信息存到文件里,Java 如何将字符串信息直接写保存到文本文件?
- python小练习--模拟用户登录,(3次重试机会,登录成功展示登录账号密码)
- PAT甲级1016 Phone Bills :[C++题解]字符串处理(复杂题)(C语言格式化读入、输出很便利!!!)
- MySQL之INSERT
- [2020多校A层11.25]最大K段和(反悔贪心)
- 如何避免mysql回表查询_mysql如何避免回表查询
- C#LeetCode刷题之#242-有效的字母异位词(Valid Anagram)
- STL(六)——max_element和min_element
- 机器学习深度学习研究者最重要的11张速查表
- vue.js 定义全局组件和局部组件的方法
- 路畅安卓最新固件升级_路畅导航系统固件升级下载|路畅导航系统固件升级大全1.51 官方版_ - 极光下载站...
- 小技巧(12):关于PC端简单的视频剪辑处理中,bandicam(录制)、pr(配音)、pr(导出)、剪映(字幕识别)、pr(最终版导出)的全过程及基础设置
- 基于区块链的数字版权保护介绍
- c 语言编写的一元二次方程的根,C#程式求一元二次方程根
- 高薪岗位大数据开发工程师要如何入门?【重磅】
- matlab取包络取得过细怎么解决,matlab如何求包络线
- python numpy 多条件筛选
- 第8章.商品详情页面之thymeleaf
热门文章
- link标签的几个用法,帮助提高页面性能
- BZOJ5419[Noi2018]情报中心——线段树合并+虚树+树形DP
- Ansible-playbook 学习
- ArcCatalog中将SQLServer中的空间数据导入到Oracle库中
- tomcat内存溢出(修改catalina.bat后windows启动tomcat服务没有效果) | 王猛的个人主页...
- 用AJAX技术聚合RSS
- 不知道能不能赶上用这技术的那一天
- 网络管理员&MCSE2003之2:使用虚拟机Vmware建立多电脑网络环境
- android 语音搜索动画,Android自定义控件实现UC浏览器语音搜索效果
- linux下maxwell安装教程,完美起航-Maxwell采集binlog系列(二)-Linux系统安装MySQL