摘要:
有一棵 n 个节点的树,初始时所有节点都为空。Alan 和 Bob 在树上玩游戏,双方轮流进行,Alan先手。每轮中,Alan 可以选择一个空节点 x,在 x 上放一个波澜哥;Bob 每轮可以选择一个空节点 y,将 y 节点以及所有与 y 相邻的节点上都放置一个面筋哥... 阅读全文
摘要:
有 n 个数 x1 ~xn 。你需要找出它们的一个排列,满足 m 个条件,每个条件形如 x_a 必须在x_b之前。在此基础上,你要最大化这个排列的最大子段和。神题,这里先orz一下当场切掉的神犇wjw看下数据范围,n0,那么S->a[i],b[i]->T连权值为x[i... 阅读全文
摘要:
终于又遇到SAM的题了好好玩,而且就这道题让我弄清楚了广义SAM和Trie上SAM的区别其实两者是没有多少区别的,不过Trie上SAM可以更快关于Trie上SAM,是用bfs的方法来构建的,相比起广义SAM用dfs建少了一个深度之和的部分但是如果原题给的就是Trie那... 阅读全文
摘要:
经典套路容斥题直接dp做是O(TxTyRk)的可以60分满分做法又要用到经典的容斥法我们设f[i][x][y]表示走i步,走到x,y的方案(不考虑不合法向量)设g[i][x]表示走了i步不合法的向量,走到了(x,x)的方案数二项式反演得Answer=∑(-1)^i*C... 阅读全文
摘要:
有依赖关系的树形背包,算是又积累了一种做法一个经典的做法就是设f[x][j]表示在x子树内,容量为j的最大获利那么转移可以写成 f[x][j]=max{f[x][j],f[x][j-k]+f[v][k]} v是x的子树我们在dp时记录背包的剩余空间,就可以得到80分一... 阅读全文
摘要:
平衡树的问题,很容易想到中序遍历那么我们给每一个节点记录一下中序遍历中它子树所在的区间,一次旋转显然只会改变两个节点的值对于询问我们用线段树区间求积就可以了#pragma GCC optimize("O3")#pragma G++ optimize("O3")#inc... 阅读全文
摘要:
前文再续,书接上回,话说神牛yxr成功培育出神牛细胞,可最终培育出来的生物体却让他大失所望……后来,他从某GD女神 牛处知道,原来他培育的细胞发生了基因突变,原先决定神牛特征的基因序列都被破坏了,神牛yxr很生气,但他知道基因突变有低频性,说不定还有一些优秀基因没有突... 阅读全文
摘要:
pp)f[x][y]=∑f[p][y-i]*a^(x-p-i)*b^i*C(x-p,i) (0#include#include#define LL long long#define M 998244353using namespace std;int n,m,q,p,... 阅读全文
摘要:
这道题非常有意思首先我们可以发现,对于一个合法的三元组我们可以找到一个大小小于3的下标集合S与之对应那么我们就来考虑找到所有合法的这样的S当|S|=1时,显然都是成立的当|S|=2时,我们只需要保证s中两个元素i,j不满足a[i]#include#includeusi... 阅读全文