1.摘要: 关于LIS部分,本篇博客讲一下LIS的概念定义和理解,以及求LIS的三种方法,分别是O(n^2)的DP,O(nlogn)的二分+贪心法,以及O(nlogn)的树状数组优化的DP,最后附上几道非常经典的LIS的例题及分析。 2.LIS的定义: 最长上升子序列(Longest Increas ...
分类:
其他好文 时间:
2020-06-04 01:48:57
阅读次数:
91
今天看了这篇博客,感觉对树状数组讲的非常透彻,存一下链接方便以后忘了看_(:з」∠)_ https://www.cnblogs.com/xenny/p/9739600.html 记录一下关键代码和注释 //lowbit计算2的k次方的值,k为 i 从最低位到最高位的连续0的个数 int lowbit ...
分类:
编程语言 时间:
2020-06-04 01:45:04
阅读次数:
80
地址:http://poj.org/problem?id=2182 题意: N头奶牛排队,它们的身高为1~n,已知每头牛前面有多少头比自己矮,求每头牛的身高。 解析: 输入其实是从i=2开始的 暴力代码:跑了438M #include<iostream> #include<cstdio> using ...
分类:
编程语言 时间:
2020-06-04 01:02:04
阅读次数:
64
http://acm.hdu.edu.cn/showproblem.php?pid=2689 #include<bits/stdc++.h> #define low(x) (x&(-x)) using namespace std; const int maxn=1e5+5; typedef long ...
分类:
编程语言 时间:
2020-05-28 13:40:31
阅读次数:
88
https://ac.nowcoder.com/acm/problem/20861 #include<bits/stdc++.h> #define low(x) (x&(-x)) using namespace std; const int N=1e5+5; typedef long long ll ...
分类:
编程语言 时间:
2020-05-28 11:36:20
阅读次数:
78
LINK:Multiset 主要点一下 二分和树状数组找第k大的做法. 线段树的做法是平凡的 开一个数组实现就能卡过. 考虑如树状数组何找第k大 二分+查询来判定是不优秀的。 考虑树状数组上倍增来做. 考虑从0开始跳 定义跳到的节点为前缀和. 那么不断跳累加权值即可. 第三种做法是二分 (其实我最先 ...
分类:
编程语言 时间:
2020-05-25 22:22:15
阅读次数:
81
题目链接 开颜色种类个二维树状数组,维护前缀和,单点修改、子矩阵查询。 注意读入的顺序,是$x_1\; x_2\; y_1\; y_2$而不是$x_1\; y_1\; x_2\; y_2$。 代码(100分): #include<iostream> #include<cstdio> #include ...
分类:
Web程序 时间:
2020-05-25 09:32:51
阅读次数:
75
地址:http://poj.org/problem?id=2985 题意: 输入n,m。共n只猫,m组询问。 1,L,R。L号猫所在组和R号猫所在组合并 0,x。查询第x大组有几只猫。 解析: 理解了好久的说。。。最最重要的还是树状数组的本质要理解好,要不代码写再多也没用。 树状数组:c[i]表示所 ...
分类:
编程语言 时间:
2020-05-24 19:14:32
阅读次数:
54
Description "link" 其实就是 $bzoj1461$ 一般的 $kmp$ 我们求的是相等的部分 现在给定数字串,求大小关系相等的个数 Solution 其实还是 $kmp$ 改变的地方我们把那个判断相等改成用树状数组 具体就是看值域前面的数的个数 求 $nxt$ 比较简单,根据 $k ...
分类:
其他好文 时间:
2020-05-24 09:43:53
阅读次数:
52
题目描述 给定一个长度为 $n$ 的字符串 $P$,有 $m$ 次询问,每次给定两个参数 $l$ , $r$,询问子串 $P[l,r]$ 所构成的后缀树的结点数。 $n\le 10^5,m\le 3\times 10^5$ 题解 tag:分类计数;后缀树/后缀自动机;线段树/树状数组;哈希。 做法来 ...
分类:
其他好文 时间:
2020-05-21 23:55:09
阅读次数:
94