摘要: - 题目大意 给你一个r * c的格子,每个格子有一个 ‘ \ ’ 或者 ‘/’ 的墙,以及打掉墙的费用,问使得所有块联通的最小费用。(自己可以配合图来看好理解一点) - 解题思路 我们可以将其转化成联通块的问题,就是把每个格子看成两部分,左侧和右侧。以一行来看,假设两个格子A,B。那么B格子的右侧 阅读全文
posted @ 2018-02-15 13:45 Alpacaddhh 阅读(113) 评论(0) 推荐(0) 编辑
摘要: - 题目大意 给出N个点,M条边,求出一棵包含N个点的树,且树的最大权值-最小权值达到最小。 - 解题思路 我们可以先把边排序,枚举最小的,然后利用kruskal加边,当图第一次连通的时候当前的边就是尽可能小的最大边,更新答案即可。 - 代码 阅读全文
posted @ 2018-02-15 13:38 Alpacaddhh 阅读(132) 评论(0) 推荐(0) 编辑
摘要: - 题目大意 初始有N个集合,分别为 1 ,2 ,3 .....n。一共有三种操件:1、 p q 合并元素p和q的集合2 、p q 把p元素移到q集合中3 、p 输出p元素集合的个数及全部元素的和。 - 解题思路 并查集操作。1、3步比较容易实现,只要建立一个sum[],cnt[],记录每个结点相应 阅读全文
posted @ 2018-02-15 13:36 Alpacaddhh 阅读(100) 评论(0) 推荐(0) 编辑
摘要: - 题目大意 有一系列的事件,它每Period秒钟就会产生编号为qNum的事件,你的任务是模拟出前k个事件,如果多个事件同时发生,先处理qNum小的事件 - 解题思路 很多相同的数值在同一时刻内,数值小的先输出,那么就是求若干个中最小的,那么就可以用优先队列进行维护。 - 代码 阅读全文
posted @ 2018-02-15 13:28 Alpacaddhh 阅读(113) 评论(0) 推荐(0) 编辑
摘要: - 题目大意 某地发洪水,导致某些城市被淹而消失,现在想把剩下的零散的城市通过修路连接起来,已知现在有部分城市是连通的。可选择修的路有m条,城市总共有n个,给出了m条路的起点终点和修路花费,问最少可花多少钱能保证所有的城市连通。 - 解题思路 可以用kruskal。把边权排序然后并查集添加边即可。 阅读全文
posted @ 2018-02-15 13:26 Alpacaddhh 阅读(84) 评论(0) 推荐(0) 编辑
摘要: - 题目大意 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。因此求出最少的成本为多少? - 解题思路 最小生成树的问题,用kruskal算法,kruskal 阅读全文
posted @ 2018-02-15 13:22 Alpacaddhh 阅读(114) 评论(0) 推荐(0) 编辑
摘要: - 题目大意 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? - 解题思路 运用并查集的知识可以很容易做出。初始化时每 阅读全文
posted @ 2018-02-15 13:17 Alpacaddhh 阅读(95) 评论(0) 推荐(0) 编辑
摘要: - 题目大意 有若干个由两种元素组成的简单化合物,现在把它们装进车里,如果车上有恰好有k种简单化合物并且恰好有k种元素的话,那么就会引发爆炸,所以车上的化合物必须避免满足这个条件。 - 解题思路 如果元素表示点,那么化合物就表示边,要爆炸的条件就是形成环,即为k个点k条边,那么就肯定存在环。直接用并 阅读全文
posted @ 2018-02-15 13:10 Alpacaddhh 阅读(104) 评论(0) 推荐(0) 编辑
摘要: - 题目大意 有n个精灵在一维坐标轴上,并且每个精灵都有一个权值,每个精灵从一个点到达一个点要花费:S3*W(s代表距离),问所有的精灵要聚在一起,最小花费是多少。 - 解题思路 设最终要求的点的位置是x,则花费为:∑fabs(x[i]-x)^3*w[i]。又因为次函数为凸函数(求二次导就知道了), 阅读全文
posted @ 2018-02-15 13:05 Alpacaddhh 阅读(109) 评论(0) 推荐(0) 编辑
摘要: - 题目大意 农夫约翰搭了一间有n间牛舍的小屋。牛舍排在一条线上第i号牛舍在xi的位置。但是他的m头牛对小屋很不满意,因此经常互相攻击。约翰为了防止牛之间互相伤害,因此决定把每头牛都放在离其他牛尽可能远的牛舍。 - 解题思路 很明显是一个最大值最小化的问题,因此我们可以假设C(d)为满足所有牛之间的 阅读全文
posted @ 2018-02-15 13:02 Alpacaddhh 阅读(156) 评论(0) 推荐(0) 编辑