这是一个用于解决支配集问题的 C++ 程序。算法开始 输入顶点数和边数。也输入边的端点。 函数 dominant(): 声明向量 Set。 取图中连接顶点的任意一条边,即 X 和 Y。 将 X 和 Y 之间的顶点添加到集合 s 中。 删除与 X 相连的所有边。结束示例#include using namespace std; vector g; bool visit[10001]; int i, j; vector dominant(int v, int e) { vector Set; //取任意一条边 ... 阅读更多
这是一个用于查找两个给定节点之间是否存在路径的 C++ 程序算法开始 函数 isReach() 是一个递归函数,用于检查 d 是否可到达 s: A) 将所有顶点标记为未访问。 B) 将当前节点标记为已访问并将其入队,它将用于获取顶点的所有相邻顶点。 C) 将顶点从队列中出队并打印它。 D) 获取出队顶点 s 的所有相邻顶点。 E) 如果相邻顶点未被访问,则将其标记为已访问并将其入队。 ... 阅读更多
这是一个用于解决给定特定情况下的匹配问题的 C++ 程序。这里,给定 N 个男人和 N 个女人,每个人都按偏好顺序对异性成员进行了排名,将男人和女人配对,使得没有两个异性成员都希望对方而不是他们目前的伴侣。如果不存在这样的人,则所有婚姻都是“稳定的”。算法开始 函数 WomenPrefersMenOverMen1(): A) 检查女性是否比她目前的未婚夫 men1 更喜欢 men B) 如果 men1 在列表中出现在 men 之前 ... 阅读更多
这是一个用于通过抛硬币生成随机子集的 C++ 程序。算法开始 输入数组中的元素。 使用 rand() 生成随机二进制序列。 它随机生成 0 或 1 作为抛硬币的结果,如果为 1 则打印数组元素。结束示例#include #include using namespace std; int main() { int i, n; coutn; int a[n]; cout