标签: disjoint-union

在LINQ中脱节联盟

我有两套(IList),我需要第一个列表中的所有项目,其中项目不在第二个列表中.

任何人都可以通过LINQ语句向我指出实现这一目标的最佳方法吗?

.net c# linq disjoint-union

22
推荐指数
1
解决办法
4370
查看次数

mysql SELECT NOT IN() - 不相交集?

我在查询工作时遇到问题,我认为应该可行.它在形式中

SELECT DISTINCT a, b, c FROM t1 WHERE NOT IN ( SELECT DISTINCT a,b,c FROM t2 ) AS alias
Run Code Online (Sandbox Code Playgroud)

但MySQL的扼流圈,其中"IN("启动.请问mysql支持这样的语法吗?如果没有,我怎么能去获得这些结果?我想找到一个不同的元组(A,B,C)在表1中不存在在表2中.

mysql disjoint-union

10
推荐指数
1
解决办法
2万
查看次数

构建者是否在Agda中脱节?(或如何反驳inj 1 x≡inj₂y)

我需要一个更多的引理来证明这inj? x ? inj? y是荒谬的,作为关于?Agda中不相交联合类型()的更大定理的一部分.

这个结果将直接来自两个构造函数?,即inj?inj?不相交.那是阿格达的情况吗?我该如何证明?

这是完整的引理:

open import Relation.Nullary
open import Relation.Binary.PropositionalEquality
open import Data.Sum


lemma : ? {a b} {A : Set a} {B : Set b} {x : A} {y : B} ? ¬ inj? x ? inj? y
lemma eq = ?
Run Code Online (Sandbox Code Playgroud)

constructor theorem-proving disjoint-union agda

4
推荐指数
1
解决办法
158
查看次数

查找不交集的数量

对于那些不熟悉脱节集数据结构的人。

https://zh.wikipedia.org/wiki/不相交-set_data_structure

我试图找到不。给定的一组好友及其关系中的一组好友。当然,毫无疑问,这可以使用BFS / DFS轻松实现。但是我选择使用不相交集,我也倾向于找到该人所属的朋友组,等等,并且不相交集听起来确实适合这种情况。

我已经实现了不相交集数据结构,现在我需要找到它包含的不相交集的数量(这将为我提供组数)。

现在,我坚持执行有效地查找不交集的数量的方法,因为朋友的数量可以高达1 00 00 0。

我认为应该起作用的选项。

  1. 将新套装装在原件的背面,然后销毁旧套装。

  2. 更改每个工会的每个元素的父母。

但是由于朋友数量巨大,所以我不确定这是否是正确的方法,也许还有其他有效的方法,或者我应该继续执行以上任何一种方法。

这是我的代码以获取其他详细信息。(我尚未在此处实现计数不交集)

//disjoint set concept 

//https://www.topcoder.com/community/data-science/data-science-tutorials/disjoint-set-data-structures/
// initially all the vertices are takes as single set and they are their own representative.
// next we see, compare two vertices, if they have same parent(representative of the set), we leave it.
// if they don't we merge them it one set.
// finally we get different disjoint sets.

#includes ...
using namespace std;

#define edge pair<int, int>
const …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm disjoint-union disjoint-sets data-structures

4
推荐指数
2
解决办法
3832
查看次数

不相交的森林 - 当两个节点的发现具有相同的等级时,为什么要将等级增加一?

我正在实现不相交的数据结构来进行联合查找.我在维基百科中看到以下声明:

......每当两个相同等级r的树结合在一起时,结果的等级为r + 1.

当树木属于同一级别时,为什么连接树的等级只增加一个?如果我只是添加两个等级(即2*r)会发生什么?

algorithm disjoint-union disjoint-sets data-structures union-find

3
推荐指数
2
解决办法
2037
查看次数

我的 C++ 函数给出了关于声明的异常错误

#include <bits/stdc++.h>
using namespace std;

void union(int x, int y, int link[], int size[])
{
    int a = find(x, link); int b = find(y, link);
    if (size[a] < size[b])
        swap(a,b);
    if ( a != b)
    {
        size[a] += size[b];
        link[b] = link[a];
    }
}


int main()
{
    cout<<"Hello World";

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我只是想不通我到底做错了什么。我检查了多次,但无济于事。这可能是非常愚蠢的事情。它不断给出以下错误。

file.cpp:19:11: error: expected identifier before '(' token
void union(int x, int y, int link[], int size[])
        ^
file.cpp:19:12: error: expected unqualified-id before 'int'
void union(int x, int …
Run Code Online (Sandbox Code Playgroud)

c++ disjoint-union disjoint-sets

3
推荐指数
1
解决办法
64
查看次数