摘要:
求出后缀数组, 然后二分答案, 对height数组分组检验答案. 时间复杂度O(|S| log|S|)--------------------------------------------------------------------------------#include#include#in... 阅读全文
摘要:
对不等式变形..然后就是维护一些数, 随便找个数据结构都能写吧....用double感觉会有精度误差, 分类讨论把#include#include#includeusing namespace std;typedef long long ll;const int maxn = 100009;int ... 阅读全文
摘要:
二分查找求出k大串, 然后正反做后缀数组, RMQ求LCP, 时间复杂度O(NlogN+logN)---------------------------------------------------------------------#include#include#include#include... 阅读全文
摘要:
昨晚写的题...补发一下题解...把1~N每个点拆成xi, yi 2个. 预处理i->j经过编号不超过max(i,j)的最短路(floyd)S->0(K, 0), S->xi(1, 0)(从i点继续走), 0->yi(1, distance(0->i))(从0出发), xi->yi(1, dista... 阅读全文
摘要:
树链剖分完就成了一道主席树裸题了, 每次树链剖分找出相应区间然后用BIT+(可持久化)权值线段树就可以完成计数. 但是空间问题很严重....在修改时不必要的就不要新建, 直接修改原来的..详见代码. 时间复杂度O(N*log^3(N))--------------------------------... 阅读全文
摘要:
dp(i, j, k)表示考虑了前i行, 放了0个炮的有j列, 放了1个炮的有k列. 时间复杂度O(NM^2)--------------------------------------------------------------------------#include#include#incl... 阅读全文
摘要:
其实合法方案一定存在....(B #include#includeusing namespace std;const int maxn = 1009;int N, B, Id[maxn], V[maxn], n;int stk[maxn], Top;struct edge { int to; edg... 阅读全文
摘要:
因为单词很短...用trie然后每次dp暴力查找...用哈希+dp应该也是可以的....---------------------------------------------------------------------------#include#include#include#includ... 阅读全文
摘要:
dp(i, j, a, b)表示选了i个男生, j个女生, 后缀中男生比女生多a(最多), 女生比男生多b(最多).dp(i+1, j, a+1, max(0, b-1)) += dp(i, j, a, b)dp(i, j+1, max(0, a-1), b+1) += dp(i, j, a, b)... 阅读全文
摘要:
LCA模板题...不难发现一定是在某2个人的LCA处集合是最优的, 然后就3个LCA取个最小值就OK了. 距离就用深度去减一减就可以了. 时间复杂度O(N+MlogN) (树链剖分)-----------------------------------------------------------... 阅读全文