摘要: "题目" 对于这种题目描述比较长的题,可以考虑简化题意。 简化后的题意: 给定一棵带边权无根树 在其直径上求出一段长度不超过s的路径F, 使得离路径距离最远的点到路径的距离最短。求最短距离。 根据题目范围,直接暴力floyd求多源最短路径。然后$n^2$求出直径和直径端点。搜索求出直径上的点。然后再 阅读全文
posted @ 2019-10-23 19:54 DAGGGGGGGGGGGG 阅读(137) 评论(0) 推荐(0)
摘要: "题目" 求树的直径,因为任意两个居住点之间有且只有一条通路,所以这是一棵树。 根据题意父母先从C去A,再去B,或者反过来。 我们一定是要让A到B最大,也要让C到A和B的最小值最大。 AB最大一定就是直径了。 CA最大直接先求出任意一条直径的两个端点,必定一个是A、一个是B。然后枚举C,找到最大的$ 阅读全文
posted @ 2019-10-23 19:19 DAGGGGGGGGGGGG 阅读(162) 评论(0) 推荐(0)
摘要: "题目" 贪心+堆。 一般贪心题用到堆的时候都会存在一种反悔操作,因此这个题也不例外。 首先电缆一定是连接两个相邻的点的,这很好证明,其次一个点只能被一条电缆连接,所以我们通过选这个电缆,不选相邻电缆和选相邻电缆,不选这个电缆之间选择,然后添加反悔操作。 链表的存在是为了方便删除线段。用l,r分别表 阅读全文
posted @ 2019-10-23 17:27 DAGGGGGGGGGGGG 阅读(126) 评论(0) 推荐(0)
摘要: "题目" DP或者迭代加深搜索,比较考验递归的搜索。 题目第一问可以用迭代加深搜索限制层数。 第二问需要满足字典序最小,所以我们可以在搜索的时候把比当前答案字典序大的情况剪枝掉。 然后考虑怎么搜索,对于每一位我们都要先搜索出每一位所能到达的所有情况包括选或者选几个。 c++ include defi 阅读全文
posted @ 2019-10-23 10:55 DAGGGGGGGGGGGG 阅读(151) 评论(0) 推荐(0)