模拟20 题解

A. 周(week)

搜索。

 

 

 

B. 任(duty)

对于树上的联通块。

存在性质:点数=边数+1

也就是说:点数-边数=联通块数。

预处理出点,横向边,纵向边的二维前缀和,
即可$O(1)$回答每个询问。

 

 

 

C. 飞(fly)

题目中定义鬼畜值为$\frac{x*(x-1)}{2}$。

发现这个鬼畜值恰好为$C^2_x$,于是问题转化为求多少组直线存在交点。

1e7的数据范围,加上32MB的内存限制,$O(nlogn)$的算法显然会暴毙。

观察数据生成种子的性质,发现两次的变化量是一定的。

对于取模回到a以下的情况,维护树状数组。

复杂度为$O(n+aloga)$

 

posted @ 2019-08-14 14:46  skyh  阅读(213)  评论(0编辑  收藏  举报