01 2014 档案

摘要:首先声明:这个题目的后台数据很水,有很多数据都没有,一些错误的方法也可能会AC。题目大意:有n只牛,牛A认为牛B很牛,牛B认为牛C很牛。给你M个关系(谁认为谁牛),求大家都认为它很牛的牛有几只。PS:如果牛A认为牛B很牛,牛B认为牛C很牛。那么我们就认为牛A认为牛C很牛。(我写的题目大意是不是中文八... 阅读全文
posted @ 2014-01-28 21:09 、小呆 阅读(135) 评论(0) 推荐(0)
摘要:题目大意:给一个连通图G,问加入某一条边后图中还有多少割边。解题思路:1、用Tarjan算法求出所有的割边和每一个点的父节点,并记录。记录每一个节点的父节点可以形成一棵深搜树。2、通过求LCA(最近公共祖先)的过程中对于深搜树的处理,记录经过的割边的数量并减去。注意事项:1、因为数据比较大,所以每加... 阅读全文
posted @ 2014-01-28 11:25 、小呆 阅读(111) 评论(0) 推荐(0)
摘要:这两天遇到了一些关于大数据处理的题目,发现Java对于这方面的优势很大。最重要的是代码量小了。于是针对这两天对Java的摸索,写一篇日志。记录一下针对ACM来说常用的Java方面的东西。1、输入首先要想输入需要先包括:import java.util.*; 我们需要其中的Scanner类声明的对象... 阅读全文
posted @ 2014-01-26 17:34 、小呆 阅读(156) 评论(0) 推荐(0)
摘要:题目大意:给定图G,求最少加多少边可以成为双连通图。解题思路:1、求图G中的双连通分量。2、每一个双联通分量缩成一个点,形成一棵树。3、计算出叶子节点的个数,需要加的边的数量就是(叶子节点个数+1)/2。解题中要注意的:用Tarjan算法求双连通分量的时候,并不是low数组中值不同的就不再同一个双联... 阅读全文
posted @ 2014-01-25 21:18 、小呆 阅读(122) 评论(0) 推荐(0)
摘要:题目大意:有N个骑士,他们要开圆桌会议,也就是要坐成一个圈,相互憎恨的两个骑士是不能坐在相邻位置的,那样他们就会打起来。给出所有的憎恨关系。如果有人不可能开会,例如他可能憎恨所有人,就不能再去开会了。求这样人的个数。解题思路:1、首先根据题目给出的憎恨关系建图,然后求补图,这个图表示哪个骑士可以和哪... 阅读全文
posted @ 2014-01-15 20:46 、小呆 阅读(134) 评论(0) 推荐(0)
摘要:在此记录一些关于图论的知识点及定义。【广度优先树】图的广度优先搜索可以构造一颗广度优先树。【最短路径树】最短路径算法可以看成是加判断条件的广度优先搜索,借助最短路径算法计算某一点到其他点的最短路径实际上是构建了一棵最短路径树,由于边权问题,最短路径树可能不一样,但最短路径长度一定是相同的。对于一颗最... 阅读全文
posted @ 2014-01-10 21:30 、小呆 阅读(1143) 评论(0) 推荐(0)
摘要:做完2187之后这1113立马简单了啊。题目大意:给出一个多边形(不一定是凸多边形),求围住这个多边形且离多边形上每一点的最小距离是L的多边形的距离。解题思路:其实看这个题目中的图就能够明白这个题该怎么计算了。1、先求这个多边形的凸包(用的Graham扫描法)。2、求凸包上相邻点之间的距离。这样所有... 阅读全文
posted @ 2014-01-06 19:28 、小呆 阅读(182) 评论(0) 推荐(0)
摘要:题目大意:给n个点,求最远两点间距离的平方。虽然这么写的,不要去枚举啊,枚举会超时的……解题思路:1、先用Graham扫描法求一个最大凸包,(求凸包的方法也是今天刚学的)2、再用旋转卡壳法求凸包两点间的最大距离。下面是代码:#include #include struct node{ int ... 阅读全文
posted @ 2014-01-06 19:02 、小呆 阅读(178) 评论(0) 推荐(0)
摘要:题目大意:顺时针或逆时针给出n个点,问这n个点围成的图形是不是个凸多边形。如果是凸多边形,给一个圆,以圆心的坐标和半径表示,问这个圆是不是完全在凸多边形内部。解题思路:1、先判断是不是凸多边形。我们可以通过两个向量的叉积来判断第三个点在前两个点的什么方向。(见《算法艺术与信息学竞赛》第三章)因为n个... 阅读全文
posted @ 2014-01-05 15:06 、小呆 阅读(137) 评论(0) 推荐(0)
摘要:题目大意:有一个1*1的正方形,分别给出下,上,左,右边每个边上的n个点,对边对应点连线,问这些线段相交的最大的四边形面积是多少(面积最大的定义是必须当前面积内没有更小的四边形内含)。解题思路:1、我们可以用一个矩阵来保存所有的点,四边上每个点是输入的,内部的每个点通过线段交点的计算可以计算出来。2... 阅读全文
posted @ 2014-01-04 20:34 、小呆 阅读(112) 评论(0) 推荐(0)
摘要:题目大意:给一条曲折的管道,给出的形式是每一个转弯处口的坐标,求光线从入口进入能到的最远的x点,如果能穿过管子则输出“Through all the pipe.”首先要知道:1、可以通过两向量的叉积来判断是否相交。具体见《算法艺术与信息学竞赛》P348开始向后很多页。2、一条光线从入口到某一点必然会... 阅读全文
posted @ 2014-01-03 21:45 、小呆 阅读(153) 评论(0) 推荐(0)
摘要:题目大意:给出n个三维空间的球体,球体是以圆心坐标+半径来表示的,要求在球面上建桥使所有的球联通,求联通所建桥的最小长度。解题思路:刚开始看到三维的有一点蒙,不过精心想了想还是很容易的。1、两个球之间要在球面上建的通路的长度是两球圆心之间的距离减去两球半径。2、当所建通路的长度小于EPS时,就认为它... 阅读全文
posted @ 2014-01-03 10:43 、小呆 阅读(128) 评论(0) 推荐(0)
摘要:题目大意:给一个平面上的简单多边形,求边上的点,多边形内的点,多边形面积。解题思路:这个题用了很多知识点:1、以格子点为顶点的线段,覆盖的点的个数为GCD(dx,dy),其中,dxdy分别为线段横向占的点数和纵向占的点数。如果dx或dy为0,则覆盖的点数为dy或dx。2、Pick公式:平面上以格子点... 阅读全文
posted @ 2014-01-02 20:43 、小呆 阅读(121) 评论(0) 推荐(0)
摘要:题目大意:给出n个pie的直径,有f+1个人,如果给每人分的大小相同(形状可以不同),每个人可以分多少。要求是分出来的每一份必须出自同一个pie,也就是说当pie大小为3,2,1,只能分出两个大小为2的份,剩下两个要扔掉。解题思路:对每一个人分的大小进行二分查找,注意输出要用cout。下面是代码:#... 阅读全文
posted @ 2014-01-02 17:56 、小呆 阅读(121) 评论(0) 推荐(0)
摘要:题目大意:一根某种材料做的直杆被夹在两面墙之间,当他受热时长度会变长,就会因两面墙的挤压而向上隆起。长度变化函数为L'=(1+n*C)*L,给定L,C,n,求向上拱起的高度H。解题思路:这是两个最关键的计算式,可以手动计算出来。然后对h进行二分查找。注意:1、误差分析,我的是到了10^-5才可以了。... 阅读全文
posted @ 2014-01-01 21:53 、小呆 阅读(106) 评论(0) 推荐(0)