题意给出一棵 $n(\le 10^5)$ 个点的树,要求选连续的 $k$ 个点,使得其它城市到这些点距离的最大值最小。题解可以发现树的中心一定要选,然后中心的周围再选 $k-1$ 个点。先求出直径,然后找到中心。再以中心为根,找到所有节点到叶节点的距离 $res[i]$ 并从大到小排序,然后选前 $k$ 个节点即可。可以证明这些节点一定是连续的。#include<bits/stdc++...
双倍经验:洛谷2195 HXY造公园题意给出一个有 $n(\le 3\times 10^5)$ 个点 $m(\le 3\times 10^5)$ 条边的森林。要求支持两种操作:求 $x$ 所在树的直径将 $x,y$ 所在的树合并,要求合并后树的直径最小题解合并可以用并查集来实现,用 $ans[x]$ 表示 $x$ 子树中的直径长度。对于操作 $1$ ,直接输出 $ans[x]$ 。对于操作 ...
题意对于一棵二叉树,如果它所有节点的左右子树交换后和原树一样,那么称它为对称二叉树。给出一棵 $n(\le 10^6)$ 个节点的二叉树,求它所有对称子树中节点个数的最大值。题解可以发现,如果一个节点 $x$ 的左子树的 左->中->右 遍历和右子树的 右->中->左 遍历相同,那么以 $x$ 为根的子树就是棵对称二叉树。所以对于一个点,维护以它为根的子树的两种遍历方...
题意略题解$\because a,b\geq 0 \ , \ \therefore y\geq x$ ,不妨设 $y=x+k(k\geq 0)$ ,原式化为:$$k^2+2kx=ax+b\tag{1}$$当 $a=2k,b=k^2$ ,即 $a^2=4b$ 时有无数组解,输出 inf 。否则 $(1)$ 式可以化为:$$(a-2k)x=k^2-b$$$$x=\dfrac{k^2-b}{a-2...
在与机房大佬们的合作下,rk89,rating+=140。题解代码中省略的程序头:#include<bits/stdc++.h>
#define fi first
#define se second
#define ll long long
#define mp make_pair
#define ha 1000000007
#define ui unsigned int
#de...
Day -inf[数据删除]Day 0上午和wzx打前一天晚上的CF,结果我B题就不会(我看标签里有个 combinatorics 就不停的推排列组合式子,结果就一傻逼题),rp++;然后3min猜到C题结论5min切了,rp--。后来又因为初始化问题调了1h的D,rp++。下午被徐妈逼迫复习初赛,到头来还不是没考。我就装模做样的看了一下,还发现个资料上的锅,剩下的时间全在颓废。晚上回去参加...
题意给出黑点白点各 $n(\le 100)$ 个,要求一个黑点连接一个白点,并且所有线段都不相交。题解所有线段不相交 $\rightarrow$ 两两连最近的点 。那么把距离变成负数就是KM算法裸题了,但这道题有个神奇的坑点:如果在 find() 里更新顶标的偏移值 d ,就会T;而改在外面更新就A了。我也不知道为什么,看来以后得改下KM算法的写法了。#include<bits/std...
Codeforces Round #572 (Div. 2) 题解题意给出一个长度为 $n(\le 1000)$ 的序列和 $k$ ,求所有长度为 $k$ 的子序列中美丽值之和。美丽值定义为序列中的数两两之间差值的最小值。题解利用差分的思想。令 $g(x)$ 为美丽值 $\geq x$ 的子序列个数,那么答案就是 $\sum_{i=1}^\infty g(i)$ 。先把序列从小到大排序,这样...
A.Keanu Reeves题意题解显然答案最多为 $2$ 。如果本来就不一样多,答案就是 $1$ ;否则把第一个数划出去即可,答案为 $2$ 。#include<bits/stdc++.h>
using namespace std;
inline int read()
{
char ch=getchar(); int f=1,x=0;
while (ch&l...
赛前,ljq:不得了,6个人开黑,上紫稳了啊。10+min过去,大家都A了2道,ljq:这场怕不是要AK。最后辣鸡C题,毁我青春。不过还是得怪做题策略有问题,如果直接跳过C去做DE应该都能A掉,这次就算是用rating买教训了。A.Pens and Pencils过水已略B.Rooms and Staircases题意我相信过不了多久洛谷上就会有翻译了题解可以发现答案一定是从某一端出发,到达...
题意有 $n(\le 50)$ 个人用 $m(\le 50)$ 张卡牌玩游戏。第一局由玩家 $1$ 坐庄抽卡,如果卡上的数字是 $x$ ,那么从他的位置数第 $x$ 的人就被处决。第二局就由被处决的人的后一个人坐庄,以此类推,最后剩下的玩家获得胜利。求每个玩家的胜率。题解概率DP,用 $f[i][j]$ 表示还剩 $i$ 个人,从坐庄的人往后数第 $j$ 个人的胜率。如果只剩 $1$ 个人,...
题意要求构造一个长度为 $n(\le 10^{15})$ 的 $0/1$ 环形序列,满足任意连续 $m(2\le m \le 5)$ 个数的和不超过 $k$ 。求方案数。题解$m$ 比较小,可以状压。可以发现答案其实就是把一个状态往后推 $n$ 次,最后回到自己的方案数。两个状态之间的转移关系 $s[i][j]$ 可以提前预处理出来,然后把 $s$ 看成一个矩阵,合法状态 $i$ 对答案的贡...
题意一棵 $n(\le 50000)$ 个点的树,有 $m(\le 50000)$ 支军队驻守在一些节点。要求根节点到每个叶子节点之间的路径上都有军队驻守,军队可以同时移动,每小时移动 $1$ 单位长度。问至少要多久才能满足条件,无解输出 -1(没有)。题解答案显然满足单调性,所以可以二分答案 $mid$ 。接下来只需要判断在 $mid$ 时间内能否满足条件。(1)如果军队 $i$ 在根节点...
A.SwapSort题意题解先离散化,然后第 $i$ 位把 $i$ 换过来就行了。#include<bits/stdc++.h>
#define mp make_pair
#define pii pair<int,int>
using namespace std;
inline int read()
{
char ch=getchar(); int f=1...
1题目若有变量 int a, float x,y, 且 a=7, x=2.5, y=4.7, 则表达式 x+a%3*(int)(x+y)%2/4 的值大约是( ).答案2.500000解析* / % 运算优先级相同后面已被强制转换成 int资料C 运算符优先级2题目同时查找 $2n$ 个数中的最大值和最小值,最少比较次数为( ).答案$3n-2$解析先用 $1$ 次比较前两个数,较大的为最...