【BZOJ1264】[AHOI2006]基因匹配Match【DP】【LCS】【树状数组】
来源:互联网 发布:windows可以删除吗 编辑:程序博客网 时间:2024/06/03 15:57
【题目链接】
相对于一般的LCS来说,这个问题可以直接得到某个字符在字符串内的位置。
先把第一个串读入,处理出每个字符出现的位置。
然后枚举第二个串,对于当前的字符,直接枚举这个字符在第一个串里出现的位置,然后转移。
转移需要用到前缀最大值,用树状数组来维护。
orz神题。
/* Pigonometry */#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int maxn = 20005, maxm = (maxn << 2) + maxn;int n, m, cnt[maxn][7], dp[maxm], tr[maxm];inline int iread() {int f = 1; int x = 0; char ch = getchar();for(; ch < '0' || ch > '9'; ch = getchar()) f = ch == '-' ? -1 : 1;for(; ch >= '0' && ch <= '9'; ch = getchar()) x = x * 10 + ch - '0';return f * x;}inline void change(int x, int c) {for(; x <= m; x += x & -x) tr[x] = max(tr[x], c);}inline int query(int x) {int res = 0;for(; x; x -= x & -x) res = max(res, tr[x]);return res;}int main() {n = iread(); m = (n << 2) + n;for(int i = 1; i <= m; i++) {int x = iread();cnt[x][++cnt[x][0]] = i;}int ans = 0;for(int i = 1; i <= m; i++) {int x = iread();for(int j = 5; j >= 1; j--) {int pos = cnt[x][j], tmp = query(pos - 1) + 1;if(dp[pos] < tmp) dp[pos] = tmp, change(pos, tmp);}}for(int i = 1; i <= m; i++) ans = max(ans, dp[i]);printf("%d\n", ans);return 0;}
0 0
- 【BZOJ1264】[AHOI2006]基因匹配Match【DP】【LCS】【树状数组】
- bzoj1264 [AHOI2006]基因匹配Match (树状数组优化DP)
- dp+树状数组 bzoj1264 AHOI2006基因匹配
- 【bzoj1264】【基因匹配Match】【dp+树状数组】
- [bzoj1264][AHOI2006]基因匹配Match 树状数组优化dp
- bzoj1264: [AHOI2006]基因匹配Match
- BZOJ1264: [AHOI2006]基因匹配Match
- bzoj1264: [AHOI2006]基因匹配Match
- 1264: [AHOI2006]基因匹配Match DP+树状数组
- bzoj 1264 [AHOI2006]基因匹配Match(DP+树状数组)
- BZOJ 1264: [AHOI2006]基因匹配Match 树状数组,DP
- bzoj 1264: [AHOI2006]基因匹配Match (DP+树状数组)
- BZOJ1264——[AHOI2006]基因匹配Match
- 【AHOI2006】bzoj1264 基因匹配
- BZOJ 1264 AHOI2006 基因匹配Match 动态规划+树状数组
- bzoj 1264: [AHOI2006]基因匹配Match 树状数组
- bzoj 1264: [AHOI2006]基因匹配Match(树状数组)
- BZOJ 1264 Match 基因匹配 (dp 树状数组优化)
- Android自定义view的三个构造函数理解
- 【BestCoder Round #81 (div.2)】【HDU5670&5671&5672】题意&题解&代码(C++)
- OpenCv学习笔记(2)--Vec3b模板类之OpenCv源代码详解
- Java Servlet多线程问题
- 聊聊的Android缓存(三)
- 【BZOJ1264】[AHOI2006]基因匹配Match【DP】【LCS】【树状数组】
- SpringMVC 报错java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path
- 一个简要的示例说明Linux内核的container_of 的用法
- 复习继承和接口、抽象类
- C/C++学习笔记(2)--函数模板template<typename T>,类模板详解(1)
- USB识别与传输
- 找倍数(优先队列解法)
- android 小练习(一) ---仿微信UI主界面
- 【Redis】一 CentOS 6.7 redis3 集群安装