POJ3670 Eating Together 【动态规划】【LIS模板】
来源:互联网 发布:mac air怎么截屏 编辑:程序博客网 时间:2024/06/05 04:37
题目就是求一次最长不下降子序列和最长不上升子序列
#include <iostream>#include <cstdio>#include <algorithm>using namespace std;#define debug(x) cerr<<#x<<"="<<x<<endl;const int maxn = 300010;int n, a[maxn], f[maxn], g[maxn],ans,len,ren;int seach (int l, int r, int x) { int rec; while(l <= r) { int mid = l+r>>1; if(f[mid] > x) { rec = mid; r = mid-1; } else l = mid+1; } return rec;}int seach1 (int l, int r, int x) { int rec; while(l <= r) { int mid = l+r>>1; if(g[mid] < x) { rec = mid; r = mid-1; } else l = mid+1; } return rec; }int main() { cin >> n; for(int i=1; i<=n; i++) cin >> a[i]; for(int i=1; i<=n; i++) { if(a[i] >= f[len]) f[++len] = a[i]; else { int l = seach(1,len,a[i]); f[l] = a[i]; } } g[0] = 0x7fffffff; for(int i=1; i<=n; i++) { if(a[i] <= g[ren]){ g[++ren] = a[i]; } else { int l = seach1(1,ren,a[i]); g[l] = a[i]; } } printf("%d",n - max(ren,len)); return 0;}
阅读全文
0 0
- POJ3670 Eating Together 【动态规划】【LIS模板】
- POJ3670 Eating Together LIS DP
- poj3670 eating together 简单的dp
- POJ:3670 Eating Together(动态规划)
- POJ 3670 Eating Together(LIS)
- poj 3670 Eating Together LIS
- poj 3670 Eating Together LIS+二分
- POJ 3670 Eating Together(LIS+nlogn算法)
- 动态规划-最长递增序列(LIS)【模板】
- 动态规划-最长递增序列(LIS)【模板】
- poj3670,LiS(二分查找)
- poj 3670 Eating Together
- POJ 3670 (Eating Together)
- POJ 3670 Eating Together LIS最长递增子序列+二分查找 nlogn算法
- poj 3670 Eating Together(最长上升子序列 lis nlogn复杂度)
- poj 3670 Eating Together(最长不下降子序列、LIS)
- 动态规划---LIS
- 动态规划---LIS
- C语言里的strcpy()
- 网络安全之VPN详解
- spring中@param和mybatis中@param使用区别
- connect方法分析
- Codeforces 862A Mahmoud and Ehab and the MEX
- POJ3670 Eating Together 【动态规划】【LIS模板】
- spark的几个示例
- java8 不使用循环
- 20170920--navicat测试
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
- Python函数参数默认值的陷阱和原理深究
- RecycleView刷新加载
- 初识410c
- 京东登录