O(nlog(n)) LCS 白书 P66例题27 UVa10635
来源:互联网 发布:新经济政策知乎 编辑:程序博客网 时间:2024/05/22 14:55
ab两个字符串,将a字符串重新编号为 则b字符串可根据a字符串编号
例如:
a={1,7,5,4,8,3,9}
b={1,4,3,5,6,2,8,9}
a编号为{1,2,3,4,5,6,7}
b重新编号为{1,4,6,3,0,0,5,7}
(第二个编号为4是因为原来b中的4在a中位置为4)
0表示在a中没有出现过
然后用nlogn复杂度的LIS解决
#include <iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;const int maxn=250*250+10;int num[maxn],s[maxn],g[maxn];int main(){ int t,C=1; scanf("%d",&t); while(t--) { int n,p,q,x; memset(num,0,sizeof num); scanf("%d%d%d",&n,&p,&q); for(int i = 1; i <= p+1; ++i) { scanf("%d",&x); num[x] = i; } int o=0; for(int i = 1; i <= q+1; ++i) { scanf("%d",&x); if(num[x]) s[o++] = num[x]; } for(int i = 1; i <= o; ++i) { g[i] = 0x3f3f3f3f; } int ans = -1; for(int i = 0; i < o; ++i) { int k=lower_bound(g,g+o,s[i])-g; g[k] = s[i]; ans=max(ans,k); } printf("Case %d: %d\n",C++,ans); } return 0;}
0 0
- O(nlog(n)) LCS 白书 P66例题27 UVa10635
- uva10635(lcs lis O(NlgN))
- UVa10635 Prince ans Princess(LCS)
- UVA10635 LCS 问题的 n*logn 解法
- uva10635 王子和公主(把lcs转化为lis)
- UVa10635--Prince and Princess(LCS转LIS)
- uva10635 Prince and Princess(LCS转LIS)
- 例题27 UVa10635 Prince and Princess(DP:LIS的nlogn算法)
- 堆排序(O(nlog(n))
- 最长子序列问题(时间复杂度O(nlog(n))
- 51nod 1272 最大距离 O(nlog(n)) , 快排 , 最大连续子串
- O(nlog(n))的最长上升(不下降)子序列算法
- 归并排序、快速排序---时间复杂度为O(nlog n)的排序方式
- 【最长上升子序列nlog(n)】
- HDOJ 1025 LIS O(nlog(n))
- 【动态规划14】UVA10635 Prince and princess(LCS转LIS)
- [LCS][LIS]Uva10635]
- hdu 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列的o(nlog(n))算法)
- c++(14)处理类型--auto类型说明符
- input 的onChang失效问题
- 【android学习】handler用法与应对内存泄露
- 推荐系统开源软件列表汇总和点评
- 前端面试题汇总2
- O(nlog(n)) LCS 白书 P66例题27 UVa10635
- spark必须知道的几个观点
- function - config
- Linux下利用backtrace追踪函数调用堆栈以及定位段错误
- NodeJs实现数字翻转
- 糗百爬虫
- div+css布局小结
- dp和px互相转换的方法
- xUtils数据库第三方框架使用步骤