图论
文章平均质量分 76
Draven__
这个作者很懒,什么都没留下…
展开
-
CodeForces - 592D(找树的直径)
题意:给出一颗节点数为n的树,其中有m个点必须要访问到,起点可以任意,每一次只能从当前点走到相邻点,每个点可以重复走,每走一步需要花费一个单位的时间,求把m个点走完最少需要花费的时间,并使得起点的编号最小.1.根据观察可以发现,起点一定是m个点中的一个,很明显如果起点不是红色的点,你需要先走到一个红色的点上去. 2.如果想要走完所有的m个点,则一定会走完一颗子树,这颗子树包含这所有转载 2017-08-07 21:23:55 · 381 阅读 · 0 评论 -
Hard challenge(用一条经过原点的线,将坐标内的点分成两份)
点击打开链接画一条经过原点的线,图上每个点都有权值,让线两边的每个点的值相乘,让总和最大要让总和最大,要让线两边的值的差距尽量小先计算出每个点与x轴的夹角大小,用atan2 , rad是与x轴的夹角,取值范围为-π到π 用于排序然后从第一个点划一条经过原点的线,用isleft这个函数判断出所有在这条线右边的点,将这些点的权值相加,计算差距然后到第二个点划一条经过原点的线原创 2017-08-16 14:19:16 · 842 阅读 · 0 评论 -
Gameia(统计倒数第二层每个节点的叶子节点个数)
点击打开链接如果Bob能把这棵树分成若干两个一组的点对,那么Bob取得胜利,否则Alice获胜。如果原树不存在两两匹配的方案,Alice从树叶开始,每次都染树叶父节点,Bob被迫只能不断的染叶子,Bob退化成一般玩家,因为Bob做不做小动作都不会逆转局势,总会出现一个时间点Bob没办法跟上Alice的节奏而让Alice染到一个周围都已被染色的孤立点(因为原树不存在两两匹配的方案原创 2017-08-11 14:26:45 · 608 阅读 · 0 评论