三校联考 Day3

三校联考 Day3

大水题

题目描述:给出一个圆及圆上的若干个点,问两个点间的最远距离。

solution
按极角排序,按顺序枚举,显然距离最远的点是单调的,线性时间可解出答案。

大包子的束缚

题目描述:给出一个圆以及直角坐标系上的若干个点,选择其中的一些点,使得两两相连的线段所在的直线与圆无交,求最多可以选多少个点。

solution
这题的题解有点奇怪,总的来说就是……我还不知道怎么做……

毛毛虫图

题目描述:定义毛毛虫图为一个无向无环图,且满足图中存在一条路径,使得每个点到这条路径的距离都小于等于(1).毛毛虫图不能有重边,但可以有自环。现给定一个无向图,并且定义合并操作:每次选定两个点u, v,将u, v两点以及所连的边删去,再加入一个新点w,将原来和u, v相连的边改成跟w相连。问至少需要多少次合并操作才能使无向图变成一个毛毛虫图。

solution
首先,这道题具有以下的几点性质:
1、如果原图有环,那么需要花费环内点的个数-1次操作把环消除。
2、不连通的块需要花费1次操作使其和其它的相连
3、由于以上的两点操作,剩下的点和边组成一棵无向树,设取得那条路径上有(len)个点,这棵树上度数为(1)的点有(s)个,那么这幅图最终可以剩下(len+s-2)个点,所以这条路径应该贪心地取树的直径。
有了以上的性质,就可以对图先双连通缩点,然后求树的直径,统计度数为(1)的点的个数,就可以算出答案。

自然的神星树

题目描述:给出一棵树与(m)种水果,给出若干个操作为将数上的一条路径上的点的某一种水果的数量加(1),求操作完后,每个点那种水果最多。

solution
对于树上的路径,可以尝试用树链剖分来处理,把树上的点重标号。由树链剖分修改的操作可以得出,可以将一条路径分成(logn)个分别连续的区间,所以总共有(nlogn)个区间。按重标号的标号顺序进行扫描,建一棵表示当前每种水果有多少个的线段树,如果当前扫描到的编号(i)为某个区间的开头,就加入线段树,如果(i)为某个区间的结尾,那么就线段树中删去。扫描完后映射回原标号就可以得出答案。

原文地址:https://www.cnblogs.com/GerynOhenz/p/5396944.html