随笔分类 - 其它 -- 点分治
摘要:Contest Info 传送门 Solved A B C D E F G H I J 6 / 10 - O O O - - - O O O O 在比赛中通过 Ø 赛后通过 ! 尝试了但是失败了 - 没有尝试 Solutions B. Mask Allocation 类似于欧几里得算法的想法去构造即
阅读全文
摘要:"传送门" A.打怪 签到。 Code B.吃水果 不妨设$nm$。 令$t=2 n m$,那么$2 (n t)=m t$,所以$n =t,m =t$。 之后再令$n$倍增使得$n=m$。 最后同时减到$0$即可。 贪心的思路大致是用最少的次数使得$n=m$,那么$t=2n m$,之后我们通过一次倍
阅读全文
摘要:"PTA" "牛客" A. 黑色气球 数据保证答案唯一,则随便搞搞即可。 Code cpp const int mod=1e9+7; const int maxn=5005; bool vis[maxn]; vector e[maxn]; int n; inline void view_all(ve
阅读全文
摘要:"传送门" 题意: 给出一颗边权为正数的树,问有多少点对之间的距离小于等于$k$。 思路: 点分治模板题,对于一个子问题,$dfs$出所有的距离之后,排个序可以用双指针,或者直接二分也行,复杂度都为$O(nlogn^2)$。 cpp include using namespace std; type
阅读全文
摘要:"传送门" 题意: 给出一颗树,每条边都有一定的边权。 先问点之间路径和为$3$的倍数的点对有多少。 思路: 点分治模板题。 可以将问题转化为经过一个点$t$的路径和不经过点$t$的路径两种情况,后者可以直接递归处理。 在一个子问题中,$dfs$一遍处理出根结点到其余子树中所有点的距离,然后得到距离
阅读全文