摘要:
参考:https://stackoverflow.com/questions/40069344/remote-rejected-master-master-permission-denied git config --global --edit 添加如下内容: [credential] helper 阅读全文
摘要:
题目大意是给定一棵树,删除一条边再添加一条边,使这棵树重心唯一。 对于树上的每一个点,计算其所有子树中最大的子树节点数,这个值最小的点就是这棵树的重心。重心有如下性质: 以树的重心为根时,所有子树的大小都不超过整棵树大小的一半。 树中所有点到某个点的距离和中,到重心的距离和是最小的;如果有两个重心, 阅读全文
摘要:
题目大意是给定两棵节点数相同的树,每个点有一个权值。现在给出k个关键点编号,问有多少个关键点编号,将其删除后在两棵树上分别对剩下的关键点编号对应的点求LCA得到的两个祖先中第一棵树的祖先权值大于第二棵树的祖先权值。 首先可以扫一遍所有的关键点,如果这个点满足条件就更新答案。那么问题就转化成了删除一个 阅读全文
摘要:
题目大意是给定一棵树,每次选择两个叶子将其删除,同时将两个叶子之间的简单路径长度加到答案上,找到一种方案使答案最大化,并输出删除的顺序。 首先有一个结论是,距离树上某个节点最远的节点一定是某条直径的某个端点。 证明:反证法。设树上某条直径左端点为L,右端点为R,距离当前节点x最远的点为P。如果x就在 阅读全文
摘要:
题意是给出一棵有根树,每次等概率删除一个点以及以其为根的子树,问删完整棵树的期望步数。 暴力枚举方案显然不可,考虑期望的线性性质,将问题转化为删除每个点的期望步数再求和。一个点消失要么是选中了这个点的某个祖先(对这个点的期望没有贡献),要么是直接删除这个点。换句话说,一条链上每个点首先被删除的概率是 阅读全文
摘要:
题意是有 n 个城市和 m 个点,已知每个城市到每个点的距离为$a_{ij}$,每秒进行一次操作,每次随机选一个没选过的城市建一个碑,其影响的范围每秒加一,求 n 秒后被影响的点数的期望。 朴素的想法是$n!$枚举建碑的方案,然后暴力判断每种方案能覆盖多少点,但n最大为20,枚举阶乘显然会t。这时就 阅读全文
摘要:
题意大概是给定一个19个格子的六边形棋盘,每个位置有一个分数,每次操作可以拿走一个棋子(不得分)或者将当前棋子跳过相邻的一个棋子(得分为跳过的棋子所在位置的分数)且将跳过的棋子拿走,问分数最大是多少。 记忆化搜索+状压。因为只有19个位置,因此可以用一个int整数表示状态,同时注意到是一个棋盘对应多 阅读全文
摘要:
题目大意是给定长度为n的数组a,两个人轮流从中选一个正数将其减1。且有k个限制形如$limit_{x_i}= y_i$,即$x_i$在数组中最多出现$y_i$次。判负的情况为: 数组全为0 操作后的数组不满足某个限制。 问谁会赢。 首先可以手玩一下,设数组为 $a = [3, 4]$,$limit_ 阅读全文
摘要:
#include <bits/stdc++.h> #define N 300005 using namespace std; int n, a, b, da, db; int head[N], ver[2 * N], Next[2 * N], tot = 0; int p1, p2, mxd = 0 阅读全文
摘要:
给定一棵n个节点的完全二叉树以及m次询问,每次询问需要计算给定节点在先序遍历的顺序。 思路就是从给定的节点不断向上跳,如果当前节点是左儿子则给答案+1,是右儿子则给答案+1+左子树的节点个数。 #include <bits/stdc++.h> #define int long long #defin 阅读全文