The Preliminary Contest for ICPC Asia Nanjing 2019
A.The beautiful values of the palace
首先对于每个$(x,y)$,我们可以$O(1)$的查询出这个坐标的值。接下来就将问题转化为了一个$10^6 \cdot 10^6$的矩阵,每次查询子矩阵内的点的和。
考虑将所有的$y$离散化,计$mp_{i,j}$表示$(1,1)-(i,j)$的和,那么对于$(x_1,y_1)->(x_2,y_2)$,答案即为
$mp_{x_2,y_2}-mp_{x_1-1,y_2}-mp_{x_2,y1-1}+mp_{x_1-1,y_1-1}$
考虑离线做法:
把所有的点按照$x$从小到达排序,每加入一个点,利用树状数组插入,每次查询,利用树状数组查询四个前缀和即可。时间复杂度$(m+4p) \cdot log(m+4p)$。
1 |
|
B.super_log
计算$a^{a^{a^{a…}}} \% m$,总共有$b$个$a$。
直接递归欧拉降幂即可。
降幂公式:
1 |
|
D.Robots
一个有向图,机器人从$u$可以不接着往下走,也可以随便选一个邻接点走下去,所有的情况都是等概率的,一天只能执行一次上面的操作。第$i$天执行任意操作的的花费为$i$,计算从$1$到$n$的期望花费。
计$day_{u}$为从$u$到$n$的期望天数,$cost_{u}$代表$u$到$n$的期望花费。
那么有:
那么我们就可以得到花费期望的转移:
移项后DFS转移即可。
1 |
|
F. Greedy Sequence
会发现每个点的前驱都是唯一的,我们用主席树求出对于每个点的左右$k$远的区间内最大的小于这个数字的数,然后$O(n)$的递推即可。
1 |
|
H. Holy Grail
跑6次$SPFA$即可。
1 |
|