上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 39 下一页
摘要: 题目大意:给定一棵树,要求增加若干条边,将其转化为完全图,且该完全图以该树为唯一的最小生成树,求增加的边权最小是多少。 题解:完全图的问题一般要考虑组合计数。重新跑一遍克鲁斯卡尔算法,每次并查集在合并时进行计数,因为要求最小生成树唯一,必须保证每条边都比当前连接两个联通块的边要至少大 1,因此每次合 阅读全文
posted @ 2018-11-26 20:40 shellpicker 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 代码如下 cpp include using namespace std; const int maxv=2e5+10; const int maxe=5e5+10; inline int read(){ int x=0,f=1;char ch; do{ch=getchar();if(ch==' ' 阅读全文
posted @ 2018-11-26 20:00 shellpicker 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 代码如下 cpp include using namespace std; const int maxv=2e5+10; const int maxe=5e5+10; typedef pair P; inline int read(){ int x=0,f=1;char ch; do{ch=getc 阅读全文
posted @ 2018-11-26 19:47 shellpicker 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵 N 个节点的边权无根树,求树的直径。 代码如下 cpp include include using namespace std; const int maxn=1e4+10; struct node{ int nxt,to,w; }e[maxnd1[u])d2[u]=d1[u], 阅读全文
posted @ 2018-11-26 15:45 shellpicker 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 题目大意:维护 N 个人和 M 个关系,对每个人来说符合:我朋友的朋友也是我的朋友,我敌人的敌人也是我的朋友,求最多有多少个朋友构成的联通块。 题目大意:维护关系显然要用到并查集,这里是维护了两种关系,即:朋友和敌人,应该有两种做法,首先是维护带权并查集,可用 0 表示两人为朋友,1 表示两人为敌人 阅读全文
posted @ 2018-11-26 11:54 shellpicker 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 题目大意:维护一个长度为 N 的序列,支持两种操作:区间加,区间查询有多少数是 7 的倍数。 题解:在每个线段树中维护一个权值数组 [0,6],由于个数显然支持区间可加性,因此可用线段树来维护。 代码如下 cpp include using namespace std; const int maxn 阅读全文
posted @ 2018-11-25 18:21 shellpicker 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵 N 个点的边权均为 1 的树,依次输出每个点到其他各个点的距离和。 题解:首先任意选定一个节点为根节点,比如 1,第一遍 dfs 遍历树求出子树大小、树上前缀和。第二遍 dfs 遍历这棵树,求出各个点的距离和。 对于遍历到的任意一个节点 i,对于与之相邻的节点 j 来说,答案贡献 阅读全文
posted @ 2018-11-24 21:36 shellpicker 阅读(182) 评论(0) 推荐(1) 编辑
摘要: 题目大意:给定 N 个位置,每个位置有一个答案贡献值,在一个位置加了一次该位置的答案贡献值之后,该值会减掉一部分,从一个位置移动到另一个位置需要花费一定的时间,问:给定 M 单位的时间,如何移动使得答案贡献值最大。(初始在1位置) 题解: 引理:若想使答案贡献值最大,一定不能走回头路,因为走回头路时 阅读全文
posted @ 2018-11-24 16:24 shellpicker 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定 N 项任务,每项任务有一个截至完成时间,若在截止时间之后完成要罚款 $w_i$ 元,最初有 M 元,怎样完成能够留下最多得钱。 题解:按照罚款从多到少贪心,在查找能够最晚完成一项任务的时间时,可以采用并查集优化,即:建立一个时间上的并查集,每次在某个时间完成一项任务时,合并当前时间和 阅读全文
posted @ 2018-11-24 15:29 shellpicker 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 题目大意:某工厂收到了n个产品的订单,这n个产品分别在A、B两个车间加工,并且必须先在A车间加工后才可以到B车间加工。某个产品i在A、B两车间加工的时间分别为Ai、Bi。怎样安排这n个产品的加工顺序,才能使总的加工时间最短。这里所说的加工时间是指:从开始加工第一个产品到最后所有的产品都已在A、B两车 阅读全文
posted @ 2018-11-23 23:18 shellpicker 阅读(710) 评论(0) 推荐(0) 编辑
上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 39 下一页