hdu4521 小明系列问题——小明序列(条件LIS)
来源:互联网 发布:西安软件开发 大专 编辑:程序博客网 时间:2024/05/29 08:41
明知道是有条件的LIS,但条件怎么也写不对。。。看了别人的,居然用个数组存储前驱下标,是在下输了。。。
还有注意点,写注释里了。
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;const int N = 100005;const int INF = 1000000;int ans, a[N], dp[N], pos[N];int n, d;int LIS(){ int i,j; ans = 0; for(i = 1; i <= n; i++) { pos[i] = lower_bound(dp + 1, dp + n + 1, a[i]) - dp;//返回插入下标值 ans = max(ans, pos[i]);//有效下标最大长度 j = i - d;//前驱下标 if(j > 0) dp[pos[j]] = min(dp[pos[j]], a[j]);//更新最小有效值,由于二分查找到的下标是当前下标,所以调用前驱节点时不一定比最大值小,必须取一次最小值 } return ans;}int main(){ // freopen("in.txt", "r", stdin); int i; while(~scanf("%d%d", &n, &d)) { for(i = 1; i <= n; i ++) { scanf("%d",&a[i]); dp[i] = INF; } printf("%d\n",LIS()); } return 0;}
0 0
- hdu4521 小明系列问题——小明序列(条件LIS)
- HDU4521:小明系列问题——小明序列(推广LIS(带区间))
- HDU4521 小明系列问题——小明序列 (LIS)
- HDU4521:小明系列问题——小明序列(LIS加强版)
- hdu4521 小明系列问题——小明序列(LIS变种 (线段树+单点更新解法))
- hdu4521 小明系列问题——小明序列
- hdu4521小明系列问题——小明序列
- HDU4521:小明系列问题——小明序列
- hdu4521 小明系列问题——小明序列(线段树+dp)
- hdu4521小明系列问题——小明序列【最长上升子序列,间隔】
- hdu4521 小明系列问题——小明序列(线段树做法)
- hdu4521 小明系列问题——小明序列(线段树)
- hdu4521 小明系列问题——小明序列 线段树 间隔大于d的最长上升子序列
- HDU 4521 小明系列问题——小明序列(LIS变形)
- hdu4521小明系列问题——小明序列 (线段树+dp,求出不连续的最长升序子序列)
- Hdu 4521 小明系列问题——小明序列【lis 变形】
- 【hdu】4521 小明系列问题——小明序列【LIS变种】
- hdu_4521_小明系列问题——小明序列(LIS)
- NS2在eclipse下的部署以及调试
- xcode 调试
- 华尔街见闻-2016年2月
- Android allowTaskReparenting clearTaskOnLaunch alwaysRetainTaskState
- ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
- hdu4521 小明系列问题——小明序列(条件LIS)
- linux grep命令
- Cocoapods 相关问题
- iOS网络编程实践--蓝牙对等网络通信实例讲解
- Mac中显示和隐藏隐藏文件命令行
- JAVA自动拆装箱
- JavaBean
- Android 自定义漂亮的圆形进度条
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别