
并查集
楚颜a
现大一,一枚小up主,B站id:一只楚颜,很迷切掉一道题的成就感!
展开
-
【模板】并查集
寻找父亲: int getfather(int v) { if (father[v]!=v) //如果他不是父结点 father[v]=getfather(father[v]); //找到他的父结点,并且将每个孩子连到父亲那里,即路径压缩 return father[v]; //返回他的父亲 } 合并两个集合: void unionxy(int x,int y) //合并两个集合 { x=getfather(x); y=getfather(y);//找他们两个的父亲,即父结点原创 2020-11-07 09:56:39 · 218 阅读 · 0 评论 -
【题解】P2814 家谱
题目 题目背景 现代的人对于本家族血统越来越感兴趣。 题目描述 给出充足的父子关系,请你编写程序找到某个人的最早的祖先。 输入格式 输入由多行组成,首先是一系列有关父子关系的描述,其中每一组父子关系中父亲只有一行,儿子可能有若干行,用 #name 的形式描写一组父子关系中的父亲的名字,用 +name 的形式描写一组父子关系中的儿子的名字;接下来用 ?name 的形式表示要求该人的最早的祖先;最后用单独的一个 $ 表示文件结束。 输出格式 按照输入文件的要求顺序,求出每一个要找祖先的人的祖先,格式为:本人的名原创 2020-09-17 13:24:25 · 742 阅读 · 2 评论 -
【题解】家庭作业
题目来源:loj 题目描述 老师在开学第一天就把所有作业都布置了,每个作业如果在规定的时间内交上来的话才有学分。每个作业的截止日期和学分可能是不同的。例如如果一个作业学分为10,要求在6天内交,那么要想拿到这10学分,就必须在第6天结束前交。 每个作业的完成时间都是只有一天。例如,假设有7次作业的学分和完成时间如下: 最多可以获得 15 学分,其中一个完成作业的次序为2,6,3,1,7,5,4 ...原创 2019-10-31 14:17:38 · 1345 阅读 · 0 评论