摘要: "「YNOI2016」自己的发明" 不换根 基本的莫队吧... 子树直接转到dfs序上。 其余部分可以见 "「SNOI2017」一个简单的询问" 。 换根 根root,查询x,分3种: 1. root不在x子树内,按照原来dfs序区间即可 2. root在x子树内且root!=x,那么就是整个序列除 阅读全文
posted @ 2019-05-30 12:48 Eeis 阅读(204) 评论(0) 推荐(0) 编辑
摘要: "「SNOI2017」一个简单的询问" 简单的解法 显然可以差分一下。 $$ get(l,r,x)\times get(l1,r1,x)=get(1,r,x) \times get(1,r1,x) get(1,l 1,x) \times get(1,r1,x) get(1,r,x) \times g 阅读全文
posted @ 2019-05-30 12:47 Eeis 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 定义 第$x$次操作后,势能为$\phi(x)$,该操作实际复杂度$c(x)$,均摊复杂度$a(x)$。 定义$a(x)=c(x)+\phi(x) \phi(x 1)$。 那么总复杂度为$\phi(n) \phi(0)+\sum c(x) $。 简单应用 Q:对于一个初始为0的二进制数,每次+1,求 阅读全文
posted @ 2019-05-26 16:02 Eeis 阅读(2473) 评论(0) 推荐(10) 编辑
摘要: "「Ynoi2018」未来日记" 区间x y,kth值... 不管了,先序列分块... 查询 第k值,假定知道每个数的权值,对值域分块。 对于整块,维护前$i$个块当中,值域在$j$块里以及值为$j$的数的个数,可以方便的询问。 对于边角,直接记值域在$j$块里以及值为$j$的数的个数,显然$o(\ 阅读全文
posted @ 2019-05-26 13:22 Eeis 阅读(255) 评论(0) 推荐(0) 编辑
摘要: "「JOISC 2016 Day 1」棋盘游戏" 先判无解:第1,3行有连续的空格或四个角有空格。 然后可以发现有解的情况第1,3行可以在任意时间摆放。 对于某一列,若第2行放有棋子,那么显然可以把棋盘分开两边来计算,然后再排列一下。 所以目前要处理的是一段 第二行都没有棋子的棋盘的方案数。 对于该 阅读全文
posted @ 2019-05-26 12:27 Eeis 阅读(301) 评论(0) 推荐(0) 编辑
摘要: "「ZJOI2014」璀灿光华" 实际上,可以不用建水晶立方体... 因为,发光水晶的方向都要枚举一遍。 只需知道发光水晶每个方向有哪些水晶就可以了。 对于一个发光水晶,将它连接的水晶标号。 从该水晶bfs,若某水晶在相同步数下被访问过两次,那么它必然不是某一方向的直线上的(挺显然的吧)。 每个点的 阅读全文
posted @ 2019-05-26 12:24 Eeis 阅读(228) 评论(0) 推荐(0) 编辑
摘要: "「ZJOI2019」线段树" 这么多棵线段树显然是要合并在一起算的... 线段树每个节点记该点有标记的概率$v_i$,总的答案就是$\sum v_i 2^t$。 对于某一次操作:$[ql,qr]$,分情况考虑。 1. 某个节点$[l,r] ,ql \leq l \leq r \leq qr$,显然 阅读全文
posted @ 2019-05-13 13:01 Eeis 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 序列长$n$,询问$Q$。 离线 莫队呀,由于众数不好删除,直接回滚莫队即可,时间复杂度$o(n \sqrt n)$,空间$o(n) $。 在线 分块啊。 设块大小为T。 first 其实可以沿用回滚莫队思想,记录$[l,r]$块里的数的$cnt$,时间复杂度$\displaystyle o({n^ 阅读全文
posted @ 2019-05-13 12:53 Eeis 阅读(586) 评论(0) 推荐(1) 编辑
摘要: "「ZJOI2017」树状数组" 以下均基于模2意义下,默认$n,m$同阶。 熟悉树状数组的应该可以发现,这题其实是求$l 1$和$r$位置值相同的概率。 显然$l=1$的情况需要特盘。 大暴力 对于$l=1$的情况,可以发现一个操作不会产生影响当且仅当增加$r$的值,而其他情况会改变$l 1$或$ 阅读全文
posted @ 2019-05-13 12:48 Eeis 阅读(251) 评论(0) 推荐(0) 编辑
摘要: "「ZJOI2009」多米诺骨牌" 要求满足任何相邻两行之间都有至少一个 骨牌横跨,任何相邻两列之间也都至少有一个骨牌横跨。 枚举有哪些列之间是没有骨牌横跨的,算出该情况下合法的方案数,容斥。 确定了哪些列是没有骨牌横跨的,列就被划分成了几个区间。 计算前$i$个区间的 任意两行之间有骨牌的 方案。 阅读全文
posted @ 2019-05-13 12:41 Eeis 阅读(337) 评论(0) 推荐(0) 编辑