摘要: A题 找两两比列,按2的次幂进行划分 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,ll> pll; const int N=1e5+200; const int mod=1e9+ 阅读全文
posted @ 2021-02-17 23:23 朝暮不思 阅读(167) 评论(2) 推荐(0)
摘要: 这题如果注意到m的范围,那么思路将会豁然开朗 因为如果是一棵树,那么直接lca就能求得两点间最小值 但是现在是图,并且边数就比一棵树大100左右 所以我们可以想到,先将图中取出生成树,用lca求答案 那么剩下就有100条边左右未使用,我们发现,答案可能经过这些边,因此我们枚举这些边的端点去做01最短 阅读全文
posted @ 2021-02-17 19:24 朝暮不思 阅读(82) 评论(0) 推荐(0)
摘要: 这题的第一想法就是我们对根节点进行贪心构造,使得左子树和右子树的差最大,这是最优的 左子树自然是以n-1为高度的满二叉树,这样节点最多,那么右子树我们需要考虑如何满足高度的平衡限制 我们发现为了对每个点都满足左右子树差值为d,我们相当于对于每个节点,左子树是一个高度为i-1的最少节点的树,而右子树是 阅读全文
posted @ 2021-02-17 14:45 朝暮不思 阅读(37) 评论(0) 推荐(0)