分组并查集(种类并查集)

这是并查集的一种变形。在这种并查集中,节点被分为了不同的n类(类别一般较少)。其大致结构与并查集相同,但区别在于,分组并查集需要一个relation数组,来存储节点的种类。这就需要注意结点与其根节点之间的关系。下面具体问题具体分析。

A Bug's Life

Background
Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that they feature two different genders and that they only interact with bugs of the opposite gender. In his experiment, individual bugs and their interactions were easy to identify, because numbers were printed on their backs.
Problem
Given a list of bug interactions, decide whether the experiment supports his assumption of two genders with no homosexual bugs or if it contains some bug interactions that falsify it.
Input
The first line of the input contains the number of scenarios. Each scenario starts with one line giving the number of bugs (at least one, and up to 2000) and the number of interactions (up to 1000000) separated by a single space. In the following lines, each interaction is given in the form of two distinct bug numbers separated by a single space. Bugs are numbered consecutively starting from one.
Output
The output for every scenario is a line containing "Scenario #i:", where i is the number of the scenario starting at 1, followed by one line saying either "No suspicious bugs found!" if the experiment is consistent with his assumption about the bugs' sexual behavior, or "Suspicious bugs found!" if Professor Hopper's assumption is definitely wrong.
Sample Input
2
3 3
1 2
2 3
1 3
4 2
1 2
3 4
Sample Output
Scenario #1:
Suspicious bugs found!

Scenario #2:
No suspicious bugs found!
题意为:告诉你n只昆虫之间相互的关系,问你是否存在同性恋的昆虫。

如1->2,2->3,3->1,则一定存在同性的昆虫。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#define N 2005
using namespace std;
int root[N],relation[N], n, k;
int flag;
int T,a,b;

int findroot(int x)
{
    if(x==root[x])
        return root[x];
    int t=findroot(root[x]);
    relation[x]=(relation[root[x]]+relation[x])%2;       //由根向下更改现结点与新的根节点的关系
    root[x]=t;
    return root[x];
}

void Union(int x,int y)
{
    int a=findroot(x),b=findroot(y);
    if(a==b)           //根节点相同,判断与根节点的关系是否相同
    {
        if(relation[x]==relation[y])
            flag=1;
        return;
    }
    root[a]=b;
    relation[a]=(relation[x]-relation[y]+1+2)%2;     //根节点不同,并查集合并,并且更改根节点之间的关系
}
int main()
{
    scanf("%d",&T);
    for (int Case=1;Case<=T;Case++)
    {
        scanf("%d%d",&n,&k);
        flag=0;
        for(int i=0;i<=n;i++)
            root[i]=i,relation[i]=0;
        for(int i=0;i<k;i++)
        {
            scanf("%d%d",&a,&b);
            if(flag)
                continue;
            Union(a,b);
        }
        printf("Scenario #%d:\n",Case);
        if(flag)
            printf("Suspicious bugs found!\n");
        else
            printf("No suspicious bugs found!\n");
        printf("\n");
    }
    return 0;
}

食物链

动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。
现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。
有人用两种说法对这N个动物所构成的食物链关系进行描述:
第一种说法是"1 X Y",表示X和Y是同类。
第二种说法是"2 X Y",表示X吃Y。
此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。
1) 当前的话与前面的某些真的话冲突,就是假话;
2) 当前的话中X或Y比N大,就是假话;
3) 当前的话表示X吃X,就是假话。
你的任务是根据给定的N(1 <= N <= 50,000)和K句话(0 <= K <= 100,000),输出假话的总数。
Input
第一行是两个整数N和K,以一个空格分隔。
以下K行每行是三个正整数 D,X,Y,两数之间用一个空格隔开,其中D表示说法的种类。
若D=1,则表示X和Y是同类。
若D=2,则表示X吃Y。
Output
只有一个整数,表示假话的数目。
Sample Input
100 7
1 101 1 
2 1 2
2 2 3 
2 3 3 
1 1 3 
2 3 1 
1 5 5
Sample Output
3
题意明确,同样是种类并查集,只不过由原来的两种类别变成了三种类别,操作依然不变。

代码:

//By Sean Chen
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;
int n,m,root[50005],relation[50005];
int d,a,b;
int cnt;

int findroot(int x)
{
    if (x==root[x])
        return x;
    int t=findroot(root[x]);
    relation[x]=(relation[root[x]]+relation[x])%3;
    root[x]=t;
    return t;
}

void Uni(int x,int y)
{
    int ra=findroot(x),rb=findroot(y);
    if (ra==rb)
    {
        if (d==1 && relation[x]!=relation[y])
            cnt++;
        if (d==2)
        {
            if (relation[x]==1 && relation[y]!=0)
                cnt++;
            if (relation[x]==2 && relation[y]!=1)
                cnt++;
            if (relation[x]==0 && relation[y]!=2)
                cnt++;
        }
    }
    else
    {
        root[ra]=rb;
        if (d==1)
            relation[ra]=(relation[y]-relation[x]+3)%3;
        else
            relation[ra]=(relation[y]-relation[x]+3+1)%3;
    }
    return;
}

int main()
{
    scanf("%d%d",&n,&m);
    for (int i=0;i<=n;i++)
    {
        relation[i]=0;
        root[i]=i;
    }
    for (int i=1;i<=m;i++)
    {
        scanf("%d%d%d",&d,&a,&b);
        if (a>n || b>n || (d==2 && a==b))
        {
            cnt++;
            continue;
        }
        Uni(a,b);
    }
    cout<<cnt<<endl;
    return 0;
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为企业级大型、通用对象关系型数据库管理系统,神通数据库为用户提供的功能包括: • 支持丰富的数据类型 神通数据库所支持的数据类型包括:字符串类型、位串类型、精确数值类型、布尔型、近似数值类型、 日期类型、时间间隔类型、货币类型、二进制大对象、字符型大对象等。 • 提供功能强大的内置函数 神通数据库系统提供了丰富的内置函数,并可以根据用户的实际需要,定制特殊的函数。系统提供的内 置函数主要包括:数学函数、字符串函数、日期时间函数、类型转换函数聚集函数等。 • 支持视图 神通数据库对数据视图提供了完善的支持,从而允许不同的用户或应用程序以不同的方式查看同一数 据。该项功能不仅使数据更易于访问,而且可以利用它限制某些用户能够查看或更新的行和列。视图可以有 效地减少数据库中的数据冗余,并为实现灵活的数据安全机制提供了基础。 • 支持存储过程 使用数据库创建应用程序时,过程语言是应用程序和数据库之间的主要编程接口。神通数据库中所提 供的过程语言是 plOSCAR。在使用 plOSCAR 程序时,可用两种方法存储和执行程序。可以在本地存储程 序,并创建向数据库发送命令并处理结果的应用程序;也可以将程序在数据库中存储为存储过程,并创建执 行存储过程并处理结果的应用程序。 • 完整性约束机制 神通数据库使用约束来自动强制数据库完整性的方式。约束定义关于列中允许值的规则,是强制完整性 的标准机制。在神通数据库中,支持五类约束: NOT NULL 指定不接受 NULL 值的列。 CHECK 约束对可以对放入列中的值进行限制,以强制执行域的完整性。 UNIQUE 约束在列集内强制执行值的唯一性。 PRIMARY KEY 约束标识列或列集,这些列或列集的值唯一标识表中的行。 FOREIGN KEY 约束标识表之间的关系。 • 支持触发器 在神通数据库系统中,触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动生效 被触发执行。唤醒调用触发器以响应 INSERT、UPDATE 或 DELETE 语句。触发器可以查询其它表,并 9 可以包含复杂的 plOSCAR 语句。神通数据库触发器按照所触发动作的间隔尺寸可以分为语句级触发器和行 级触发器。触发器由 CREATE TRIGGER 语句定义,FOR EACH 子句定义了触发动作的间隔尺寸,它既 可以是 FOR EACH STATEMENT(语句级触发器),也可以是 FOR EACH ROW(行级触发器)。 • 支持事务处理 神通数据库提供了高效的事务管理机制,保证每个事务的完整性。该机制提供: 锁定机制,使事务相互隔离。 记录机制,保证事务的持久性。即使服务器硬件、操作系统或数据库自身出现故障,也可以在重新启动 时使用事务日志,将所有未完成的事务自动地回滚到系统出现故障的位置。 事务管理特性,强制保持事务的原子性和一致性。事务启动之后,就必须成功完成,否则数据库系统将 撤消该事务启动之后对数据所作的所有修改。 在神通数据库中一个事务可以由一条或多条 sql 语句构成。事务的提交状态可以是自动提交也可以是手 动提交。有关事务的控制命令包括 BEGIN,COMMIT,ROLLBACK。 • 支持模式 一个数据库可以包含一个或多个命名的模式,一个模式内可以包含多个表。不同的模式中的表名可以相 同,而同一模式中的表不能同名。模式如同操作系统级的目录,但是模式不能嵌套。 用户在相应权限控制下可以访问所连接的数据库中的任何模式中的对象。 模式具有以下特点: 多个用户使用同一数据库而不会互相影响。 对数据库中的对象进行逻辑分组,更便于管理。 各个应用分别使用各自的模式,以避免命名冲突。 在模式中创建数据库对象或访问模式中的对象时,可在对象名前指定模式名。 • 支持数据备份和恢复 神通数据库的备份/恢复工具具有图形化的操作界面。用户利用备份工具可以对整个数据库、指定数据 库、或者指定库中的特定表执行备份操作。备份的数据被保存在用户指定的目录中。利用备份文件,用户可 以利用配套的恢复工具执行恢复操作。备份和恢复工具都提供丰富的选项,以满足不同用户的备份和恢复要 求。 • 支持数据迁移 神通数据库的数据导入和导出向导是前台管理工具中的一个实用工具,其主要功能是进行神通数据库 与其它各种异构数据源之间数据的析取、转换以及合并。数据导入和导出工具支持的数据源包括:神通数据 库、Oracle、Microsoft SQL Server、IBM DB2、Microsoft Excel 97-2000、文本文件、其他支持 ODBC 的 数据源。在数据的转换过程中,向导能根据源数据和目标数据具体类型,通过内置的转换规则提供数据类型 的默认映射关系、数据类型的精度匹配、空与非空信息提取、主键及相关索引建立等辅助功能,帮助用
授权方式: 免费软件 界面语言: 简体中文 文件大小: 28.5 MB 更新时间: 2020-07-03 资源类型: 国产软件 推荐等级: ★★★☆☆ 平台环境: ASP.NET/MSSQL 作者主页: 点击查看 演示地址: 点击查看 详细介绍 – [ 乘风广告联盟系统 v6.6 ] 乘风广告联盟系统 可做广告联盟、手机联盟、弹窗联盟(ie6,7,8,9,360等浏览器都可以)、支持手机图片广告宽度自适应,支持cpc、cpm、cpa、cps、软件安装等计费方式,支持富媒体广告,支持自定义广告代码,完善防作弊功能,支持二次点击,关键字统计,最多支持五级下线收入提成功能,支持广告智能轮循和自定义广告轮循等等 独有功能:默认就支持了读写分离及缓存负载大;一个广告多个计费模式同时计费;网站主按ip计费的同时广告主按pv扣费;一个ip多次计费;防作弊时间自己定义;广告效果模板自己管理;支持独立的客服和商务后台数据查看提成和结算等等 乘风广告联盟系统功能 1.适合用途:一.广告联盟;二.和CMS、论坛或商城等网站原有的注册用户集成,让众多网友为你的网站作宣传。 2.系统分别为每个注册会员分配了文字推广链接和图片广告,通过推广获得点数。 3.结算功能:会员通过推广获得的的金额可以进行结算获得收益。 4.下线管理功能:会员可以查看自己已经推广注册成功的下线用户。 5.广告商管理后台,广告主可以自己发布广告并查看每个广告的推广的实际效果。 6.强大的防作弊功能:IP防作弊,Cookie校验,且后台有强大的防作弊查询功能,让作弊用户无处遁形。 7.可以限定推广链接只有发布在指定网站上或用户已经通过审核的网站上。 8.记录每天,每小时详细的广告显示量和点击量,及推广的IP和来源页面。 9.系统可以针对不同对象使用,站长和非站长成员,可以设置最大安全点击率,并可以对整个广告扣点或对单个用户扣点 10.完全防止Sql注入,密码都是加salt进行Md5不可逆加密。 11.模板多样,前台、网站主、广告主、管理主、客服和商务后台都可以自己做模板,包括电脑和移动设备可使用不同模板 12.可整合其它任意程序下的用户做推广,包括任意语言和数据库类型,商城、论坛系统等等,并可以用户ID或用户名、Email保持相同统一,接口丰富 13.程序核心使用数据库存储过程处理,银行级的负载和安全性能,无需做主从数据库单个数据库默认就实现了读写分离,数据库在高负载下绝不会损坏更不会丢失数据 14.前台页面可以开启伪静态,更利于搜索引擎收录,更有简易的文章发布功能,分类功能,更利于站点SEO优化 15.可自定义选项超多,充分满足个性化需求,防作弊设置全面,更可靠更可信赖 16.广告支持iframe和js代码投放,可完全不影响广告投放站的打开速度 17.专业原创程序,可靠性,稳定性,安全性,服务都是有保障的。 乘风广告联盟系统 v6.6 更新日志 1.增加四个附加广告的代码选项可定时定用户定等级的对用户开启,有效提升广告效果。 2.增加对浏览者的设备的方向,CPU型号,核数,GPU型号,使用的网络类型的记录,很大提升防作弊效果 3.系统设置里增加对CPC,CPV,CPA计费方式的全局扣量的设置选择 4.增加对最近显示的记录,并加入作弊统计和加强显示防刷功能,记录到缓存内部,后台可即时浏览此类数据 5.增加对用户分组的功能,可对各类分组用户定向投放广告或定向开启附加广告 6.增加对系统运行状态监测功能如有异常可发邮件通知 7.全面美化前台和管理员,网站主,广告主,客服和商务后台,使用bootstrap框架,更好地兼容了移动类设备 8.优化了代码使负载能力提升很多,一台32核的服务器能每天负载2千万以上的PV,支持多台服务器负载均衡 乘风广告联盟系统页面展示 乘风广告联盟系统后台截图 相关阅读 同类推荐: 站长常用源码
注:分二卷,点击上传者查看第二卷地址。亲,本人纯手工添加了书签哦!!方便阅读 《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决方案。   作为一本讲述T-SQL高级查询的专业图书,《Microsoft SQL Server 2008技术内幕:T-SQL查询》旨在结合实践中的各种常见问题,教读者如何用SQL作为语言工具来思考问题,揭示基于集合查询的强大威力。《Microsoft SQL Server 2008技术内幕:T-SQL查询》内容丰富、文字简洁明快,列举的实例具有一定的难度,而且实用性很强,可以把它们作为解决实际问题的标准模式。阅读《Microsoft SQL Server 2008技术内幕:T-SQL查询》,可以充分地理解T-SQL语言和良好的编程实践,学会如何编写更加有效而强大的查询语句。 序言 I 致谢III 前言 V 第1章 逻辑查询处理 1.1 逻辑查询处理的各个阶段 1.1.1 逻辑查询处理阶段简介 1.2 客户/订单场景下的查询示例 1.3 逻辑查询处理阶段详解 1.3.1 步骤1:FROM阶段 1.3.2 步骤2:WHERE阶段 1.3.3 步骤3:GROUP BY阶段 1.3.4 步骤4:HAVING阶段 1.3.5 步骤5:SELECT阶段 1.3.6 步骤6:排序用的ORDER BY阶段 1.4 逻辑查询处理的深入内容 1.4.1 表运算符 1.4.2 OVER子句 1.4.3 集合运算符 1.5 总结 第2章 集合论和谓词逻辑 2.1 自然语言表述到数学表示的转换 2.1.1 严格定义(well-Definedness) 2.1.2 相等、恒等和同一性 2.1.3 数学命名约定 2.1.4 数字 2.1.5 上下文 2.1.6 函数、参数和变量 2.1.7 指令和算法 2.2 集合论 2.2.1 集合的标记方法 2.2.2 集合的严格定义 2.2.3 论域 2.2.4 真实性 2.2.5 罗素悖论(Russell s Paradox) 2.2.6 有序对、元组和笛卡尔积 2.2.7 空集 2.2.8 集合的特征函数 2.2.9 集合的基数(Cardinality) 2.2.10 顺序 2.2.11 集合运算符 2.2.12 集合论的推广 2.3 谓词逻辑 2.3.1 编程语言中的逻辑功能 2.3.2 命题和谓词 2.3.3 排中律 2.3.4 与、或、非运算 2.3.5 逻辑等价 2.3.6 逻辑蕴含 2.3.7 量化(Quantification) 2.3.8 替代和推广 2.4 关系 2.4.1 自反性、对称性和传递性 2.5 一个实际的应用 2.6 总结 第3章 关系模型 3.1 关系模型简介 3.1.1 关系、元组和类型 3.1.2 关系模型:快速摘要 3.2 关系代数和关系计算 3.2.1 基本运算符 3.2.2 关系代数 3.2.3 Codd提出的8个原始关系运算符 3.2.4 关系演算 T-SQL支持 3.3 数据完整性 3.3.1 声明式约束 3.3.2 实施完整性的其他方法 3.4 数据库正规化和其他设计主题 3.4.1 解决函数依赖的范式 3.4.2 更高级的范式 3.4.3 反规范化(Denormalization) 3.4.4 一般化和特殊化 3.5 总结 第4章 查询优化 4.1 本章用到的样本数据 4.2 优化方法论 4.2.1 分析实例级别的等待 4.2.2 关联等待和队列 4.2.3 确定行动方案 4.2.4 细化到数据库/文件级别 4.2.5 细化到进程级别 4.2.6 优化索引和查询 4.3 查询优化的工具  4.3.1 查询执行计划的缓存  4.3.2 清空缓存 4.3.3 动态管理对象 4.3.4 STATISTICS 4.3.5 测量查询的运行时间 4.3.6 分析执行计划 4.3.7 图形化的执行计划 4.3.8 提示(Hint) 4.3.9 跟踪/Profiler 4.3.10 数据库引擎优化顾问 4.3.11 数据收集和管理数据仓库 4.3.12 使用SMO来复制统计信息 4.4 索引优化 4.4.1 表和索引的结构 4.4.2 索引访问方法 4.4.3 索引策略的分析 4.4.4 碎片 4.4.5 分区 4.5 准备样本数据 4.5.1 数据准备 4.5.2 TABLESAMPLE2 4.6 基于集合的方法和迭代/过程方法的比较,以及一个优化练习2 4.7 总结 第5章 算法和复杂性 5.1 你有一个1夸特的硬币吗? 5.1.1 如何从零钱罐中取回1夸特钱 5.1.2 有时零钱罐中没有1夸特的硬币 5.2 如何度量算法(How Algorithms Scale) 5.2.1 二次缩放(Quadratic Scaling)的一个例子 5.2.2 具有线性复杂度的算法 5.2.3 指数和超指数复杂度 5.2.4 次线性(sublinear)复杂度 5.2.5 常量复杂度 5.2.6 复杂度的技术定义 5.2.7 复杂度的比较 5.3 经典算法和算法策略 5.3.1 排序算法 5.3.2 字符串查找 5.4 一个实际的应用程序 5.4.1 识别测量数据的趋势 5.4.2 LISLP算法的复杂度 5.4.3 用T-SQL解决最长上升子序列的长度问题 5.5 总结 第6章 子查询、表表达式和排名函数 6.1 子查询 6.1.1 独立子查询 6.1.2 相关子查询 6.1.3 行为不当的子查询 6.1.4 不常用的谓词 6.2 表表达式(Table Expressions) 6.2.1 派生表 6.2.2 公用表表达式 6.3 分析排名函数 6.3.1 行号 6.3.2 排名和密集排名(Dense Rank) 6.3.3 组号(Tile Number) 6.4 数字辅助表 6.5 缺失范围和现有范围(也称为间断和孤岛) 6.5.1 缺失范围(间断) 6.5.2 现有范围(孤岛) 6.6 总结 第7章 联接和集合运算 7.1 联接 7.1.1 旧语法和新语法 7.1.2 基本联接类型 7.1.3 其他的联接分类 7.1.4 上一年度的滑动合计 7.1.5 联接算法 7.1.6 拆分元素 7.2 集合运算 7.2.1 UNION 7.2.2 EXCEPT  7.2.3 INTERSECT 7.2.4 集合运算的优先级 7.2.5 在集合运算中使用INTO 7.2.6 避开不支持的逻辑阶段 7.3 总结 第8章 数据聚合和透视 8.1 OVER 子句 8.2 决胜属性(Tiebreaker) 8.3 连续聚合 8.3.1 累积聚合(Cumulative Aggregation) 8.3.2 滑动聚合(Sliding Aggregation) 8.3.3 年初至今(YTD) 8.4 透视转换(Pivoting)35 8.4.1 透视转换属性35 8.4.2 关系除法 8.4.3 聚合数据 8.5 逆透视转换 8.6 自定义聚合 8.6.1 使用透视转换的自定义聚合 8.6.2 用户定义聚合函数(UDA,User Defined Aggregate) 8.6.3 专用解决方案 8.7 直方图(Histogram) 8.8 分组因子 8.9 分组集 8.9.1 样例数据 8.9.2 GROUPING SETS从属子句 8.9.3 CUBE从属子句 8.9.4 ROLLUP从属子句 8.9.5 分组集代数 8.9.6 GROUPING_ID函数 8.9.7 保存分组集 8.9.8 排序 8.10 总结 第9章 TOP和APPLY 9.1 SELECT TOP 9.1.1 TOP和确定性 9.1.2 TOP和输入表达式 9.1.3 TOP和修改 9.1.4 增强的TOP 9.2 APPLY 9.3 使用TOP和APPLY解决常见问题 9.3.1 每组中的TOP n 9.3.2 匹配当前值和前一个值 9.3.3 分页 9.4 逻辑转换 9.5 总结 第10章 数据修改 10.1 插入数据 10.1.1 增强的VALUES子句 10.1.2 SELECT INTO 10.1.3 BULK行集提供程序 10.1.4 按最小方式记录日志的操作  10.1.5 INSERT EXEC 10.1.6 序列机制45 10.2 删除数据 10.2.1 TRUNCATE与DELETE 10.2.2 删除包含重复数据的行 10.2.3 基于联结的DELETE 10.3 更新数据 10.3.1 基于联结的UPDATE 10.3.3 更新大值数据类型 10.3.3 用SELECT和UPDATE语句进行赋值 10.4 合并数据 10.4.1 MERGE语句基础 10.4.2 额外增加一个谓词 10.4.3 多个WHEN子句 10.4.4 WHEN NOT MATCHED BY SOURCE子句 10.4.5 MERGE Values 10.4.6 MERGE与触发器 10.5 OUTPUT子句 10.6 总结 第11章 查询分区表 11.1 在SQL Server中进行分区 11.1.1 分区视图 11.1.2 分区表 11.2 总结 第12章 图、树、层次结构和递归查询 12.1 术语 12.1.1 图 12.1.2 树 12.1.3 层次结构 12.2 应用场景 12.2.1 员工组织图 12.2.2 材料清单(BOM) 12.2.3 道路系统 12.3 迭代/递归 12.3.1 下属 12.3.2 祖先 12.3.3 带有路径枚举的子图/子树 12.3.4 排序 12.3.5 环 12.4 具体化路径 12.4.1 维护数据 12.4.2 查询 12.5 使用HIERARCHYID数据类型的具体化路径5 12.5.1 维护数据 12.5.2 查询 12.5.3 使用HIERARCHYID的其他方面 12.6 嵌套集合 12.6.1 分配左值和右值 12.6.2 查询 12.7 传递闭包(Transitive Closure) 12.7.1 有向无环图 12.7.2 无向有环图 12.8 总结 索引

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值