zcmimi's blog
avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

记录up[i][j]表示位置(i,j)可以向上多少个#

s[i][j]表示位置(i,j)作为三角形中心可以向左多少个#

S[i][j]表示位置(i,j)作为三角形中心可以向右多少个#

ans = \sum_{i=1}^n\sum_{j=1}^n \min(s[i][j],S[i][j])

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

离线处理,倒着添加

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

原本打算写dp的,但是仔细观察一下,只要第一个点确定了,后面的点也确定了

答案只有可能是0,1,2中的一种

(可能是我扫雷玩太少了)

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

i对答案会统计\left \lfloor \frac ni \right \rfloor次,但只有出现奇数次才会产生贡献

每次的贡献是i \bigoplus i+1 \bigoplus ... \bigoplus j,那么可以用数列之异或这道题的思路做

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

题目意思就是有n个干草包,将一条路分成了n-1段区间,把起点设在这n-1段的每一段中,判断从那里开始是否能够逃脱,输出所有不能逃脱的区间长度之和。

记录每个区间能不能冲出去

一个区间只要中间有一个点可以冲出去就每个点都可以冲出去

那么我们只要一直向左边和右边冲,一直到没法继续冲位置,只要冲到一个可以冲出去的区间,就可以冲出去

冲冲冲

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

倍增找k级祖先+dsu on tree静态链分治

设当前节点为x

如果d_x < k,那么答案当然为0 可以找到第k级祖先,然后在k级祖先上添加一组询问(求它子树中深度为d_x的节点数)

因为这个还算上了x本身,所以把结果-1就是答案了

统计区间中各个深度的点有多少个就直接tot[d_x]+=(1\text{或}-1)就可以了

上代码:

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

62/73
Search
search