图的算法问题 已知边的起止节点求其中一个系统节点总数

问题描述

图的算法问题 已知边的起止节点求其中一个系统节点总数

求大神帮我想个算法,我有n组数据对,src->target,展示出来就是数个有向无环图,每个分隔的图称为一个系统,要求给出两个数据我能知道这两个数在不在同一个系统以及这个系统的节点总数是多少。有没有什么简单可行的方法啊
计算二叉树的节点总数">

解决方案

无非就是递归遍历。你每个节点除了本身数据之外,加上一个bool值表示是否被遍历过,伪代码如下:
int countNode(Node n)
{
int r = 0;
n.Visited = true;
for (subn : n.Nodes)
{
if (!subn.Visited)
r += countNode(subn);
}
return r + 1;
}

时间: 2024-08-30 23:44:06

图的算法问题 已知边的起止节点求其中一个系统节点总数的相关文章

加密解密算法-已知VB编写的加密算法,求破对应解密算法!

问题描述 已知VB编写的加密算法,求破对应解密算法! 求大神编写对应的解密算法!跪谢! Dim Psw As String Dim Key As String Psw = Trim(Text1.Text) Key = StrReverse(Psw) Key = Key & Left(Key, 1) & Right(Key, 1) Key = Key & Key & Key Dim Val As String Dim Idx1 As Integer Dim Idx2 As I

已知大概的明文和密文求加密方式(应该是base64变种)

问题描述 已知大概的明文和密文求加密方式(应该是base64变种) 18162417601 YD038bCdLp0Og8ocviQn 18162417602 YD038bCdLp0Og8ocvSQn 18162417603 YD038bCdLp0Og8ocvyQn 18162417609 YD038bCdLp0Og8octSQn 前面一列是明文,后面的是加密后的,求大神解释 解决方案 看上去像简单异或加密,尝试下用原文xor base64解码后的密文,如果是一个常数,那么这个就是密码.

如何把已知表的一列原样加到一个新的表中

问题描述 asp.net中,我已经获取了一个DataTable,指定表变量为dt,例如:dt表内容idnamesex1小王男2小李女3小黑男我现在想得到一个新的DataTable:dtnew想取id列和name列dtnew表内容idname1小王2小李3小黑使用dtnew.Colums.Add(dt.Colums["id"]);是不行的,提示id列已经在另一个datatable中使用.那我改怎么做呢? 解决方案 解决方案二:先增加列,再循环增加这列的值.解决方案三:引用1楼pj100的

python写的算法与已上线的JavaWeb项目的结合

问题描述 python写的算法与已上线的JavaWeb项目的结合 JavaWeb是一个电子商务的项目且已经测试上线了,python写的算法是关于这个电子商务产品的推荐算法,近期刚完成.本来两个是独立的,现在要求把两个结合在一块,让那个python写的推荐算法自动运行,这个要怎么做? 解决方案 http://blog.sina.com.cn/s/blog_64e467d60100uhls.html 解决方案二: JavaWeb项目不是一次性项目的吗?怎么还可以在Java里面写?求解

c++-已知一个多边形的各个顶点的坐标,如何通过算法扩大这几个顶点?

问题描述 已知一个多边形的各个顶点的坐标,如何通过算法扩大这几个顶点? 用MFC画多边形,已知各个顶点的坐标,现在我想通过这几个顶点把多边形向外扩大一点点,并得到新的顶点坐标,有木有什么算法?求大神告知,最好有代码!谢谢! 解决方案 已知任意一个多边形的各个顶点的坐标,怎么去求该多边形的面积? 解决方案二: 有一个想法,你先确定多边形的中心位置,然后以中心点为参考点,将周围的坐标点向外延伸

已知一个带有头结点的单链表,设计算法将该单链表复制一个拷贝,急急急

问题描述 已知一个带有头结点的单链表,设计算法将该单链表复制一个拷贝,急急急 已知一个带有头结点的单链表,设计算法将该单链表复制一个拷贝,急急急 解决方案 http://zhidao.baidu.com/link?url=07NsUCYjlwgZFGwfyhqq9NxVTk7hVXs7yBAZAyChUU_CPFIZ_WjwusNVPD7CDC1vjFVaMMTGFwp-H8tnfQb9Qa

c++-算法题。已知两个平行四边形各自的四个点,求这两个平行四边形是否有交集!用代码如何实现?

问题描述 算法题.已知两个平行四边形各自的四个点,求这两个平行四边形是否有交集!用代码如何实现? 算法题.已知两个平行四边形各自的四个点,求这两个平行四边形是否有交集!用代码如何实现? 解决方案 计算角度有点复杂,或许可以考虑判断点在两对平行线之间.判断点位于一对平行线之间(一条线上,一条线下):将点代入一对平行线方程,判断L1(x,y)*L2(x,y)<=0. 解决方案二: 如果两个平行四边形相交,那么一个四边形中必然有一个顶点位于令一个四边形的内部. 而判断一个点P是否在一个平行四边形ABC

算法研究:已知不重复的int集合,求最长递增子序列

问题背景:最近换工作面试,面试官问了一道编程题,大体是已知不重复的int集合,求最长递增子集合,这个集合可以不是连续的,但顺序呢不能乱. 比如说:{2, 7, 3, 13, 6, 8}里最长递增子集合的就是{2,3,6,8}. 这道题感觉很有意思,于是回家就用代码实现了一遍. 主要代码: package com.galaxy.fym.algorithm.maxsublist; import org.apache.commons.collections.CollectionUtils; impor

WCF技术剖析之十三:序列化过程中的已知类型(Known Type)

DataContractSerializer承载着所有数据契约对象的序列化和反序列化操作.在上面一篇文章(<数据契约(Data Contract)和数据契约序列化器(DataContractSerializer)>)中,我们谈到DataContractSerializer基本的序列化规则:如何控制DataContractSerializer序列化或者反序列化对象的数量:以及如何在序列化后的XML中保存被序列化对象的对象引用结构.在这篇文章中,我们会详细讨论WCF序列化中一个重要的话题:已知类型