摘要:
...日后会慢慢补(flag!)先来讲讲基本的 一.字符串Hash 将字符串用一个数表示,常用的写法有: 1.自然溢出 2.单Hash 3.双Hash 前两个会被精心构造的串卡掉,最后一个虽然目前卡不掉,但是出题人可以卡你常数。 所以这个算法很Naive?不是的 我们来看一道题 bzoj1014 用 阅读全文
摘要:
高老师让我更我就更了...一道一道看吧 1.ZJU 3201 Tree of Tree 给出一棵N个点的无根树,每个节点都有对应的权值现要求你找出一棵K个节点的子树,使得这个子树上的权值和最大 题解:dp[v][i]表示以v为根下的子树选i个点的最大权值和,做一下背包就可以了 代码源网侵删 (ZOJ 阅读全文
摘要:
bzoj2616 放一个车的时候相当于剪掉棋盘的一行,于是就可以转移了,中间状态转移dp套dp,推一下即可 bzoj2878 环套树期望dp 手推一下递推式即可 bzoj3295 树状数组套权值线段树 NOI2002贪吃的九头龙 多叉转二叉 水过 bzoj1495 方程就是f[i,j,k]表示以i为 阅读全文
摘要:
bzoj4864 Splay乱搞 bzoj3669 正解LCT,考虑上下界的spfa可过 bzoj3668 位运算 暴力 bzoj3670 KMP DP bzoj3671 含有最小的一个数的路径一定比不含的优 贪心 bzoj1564 按数值排序,就得到了那个Treap的中序遍历,用dp(l,r,k) 阅读全文
摘要:
整理一些不太过分的卡常数技巧 1.bzoj4574 ZJOI2016:确定数据不会爆longlong的情况下把所有东西都开成longlong最后取模 2.O2下取模优化(一堆题) 3.前置++ 4.不要开bool 开char/int 阅读全文
摘要:
滚回来更新,,, 在Day1我们学了最基本的线段树套平衡树 Day2开始我们要学习一些黑科技 (所以很大概率会出现Day3 w 1.线段树上的黑科技 这一段我们分几项来讲 1.权值线段树 权值线段树以权值为下标建树(就像求逆序对时用的树状数组),一开始所有节点都为0,通过线段树的区间极值,区间和来表 阅读全文
摘要:
树套树Day2暂且搁置...因为Day1的题我各种不会做... 唯一过了一道还是整体二分过的... 我们来一点愉快的算法,先不考虑数据结构这种骚东西了 毕竟还在发烧,就先码码这几天在搞的点分治吧 hx你又挖一个大坑赶紧去填树套树 点分治用于解决“树上路径点权统计问题” ...讲不太清楚,大家可以直接 阅读全文
摘要:
背诵全文 #include<complex> #include<vector> #include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define C complex<do 阅读全文
摘要:
您需要写一种数据结构,来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查询k在区间内的后继(后继定义为大于x,且最小的数) 应xgy的邀来码树套树了...今天或许能码完这一 阅读全文
摘要:
吉老师的题还真是难呢... 正解至今不会,只会平衡树的做法 这种用平衡树上一个点表示一段区间的题还真要做做...想起来挺难受的 建n棵平衡树表示每行的m-1个元素 再建一棵平衡树维护最后一列 中间要支持一个split操作,就是把[l,r]分成[l,x-1],x,[x+1,r]三部分,很好做 相比于b 阅读全文