问题描述:输入点数n、边数m、每条边连接的两个点a,b,求此无向图中不包括一个点本身的欧拉回路数量,重复不计; 解决此问题,则需要在深搜的基础上判断新搜出的欧拉回路是否已经被走过,可以利用搜索时所打的标记来判断; 使用邻接表,需要注意在无向图中连接两点有两条边,要同时考虑; 以下为代码: #incl ...
分类:
其他好文 时间:
2017-12-09 18:16:28
阅读次数:
185
【BZOJ2310】ParkII Description Hnoi2007-Day1有一道题目 Park:给你一个 m * n 的矩阵,每个矩阵内有个权值V(i,j) (可能为负数),要求找一条回路,使得每个点最多经过一次,并且经过的点权值之和最大,想必大家印象深刻吧. 无聊的小 C 同学把这个问题 ...
分类:
其他好文 时间:
2017-12-09 12:09:20
阅读次数:
170
【BZOJ1814】Ural 1519 Formula 1 题意:一个 m * n 的棋盘,有的格子存在障碍,求经过所有非障碍格子的哈密顿回路个数。(n,m<=12) 题解:插头DP板子题,刷板子,附带题解链接。 如何存放状态呢?可以采用hash,我们的hash表形如一个队列,每次新加入一个状态时, ...
分类:
其他好文 时间:
2017-12-09 11:01:47
阅读次数:
157
如果图G中存在一条路径,该路径恰好包含图中的每条边且仅包含一次,那么称该路径为欧拉路径。如果路径的起点和终点重合,则称为欧拉回路。 命题1:对于一个有向图G(V,E),若V中每个顶点都至少与一条边相连。则G为连通图,且每个顶点的出度和入度一致是图G含欧拉回路的充分必要条件。 证明: 必要性很容易证明 ...
分类:
其他好文 时间:
2017-12-06 23:53:20
阅读次数:
255
【问题描述】 给定一个无回路的无向图(即树),设计一个动态规划算法,求出该图的最大独立集,并输出该集合中的各个顶点值。 1 package org.xiu68.exp.exp7; 2 3 import java.util.ArrayList; 4 5 public class Exp7_1 { 6 ...
分类:
其他好文 时间:
2017-12-05 18:47:09
阅读次数:
186
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3018 题目大意:有n个点,m条边,人们希望走完所有的路,且每条道路只能走一遍。至少要将人们分成几组。 解题思路:先用并查集求出所有的连通块,然后判断每个连通块内点的度数,如果有奇数点则需要的组数ans+ ...
分类:
其他好文 时间:
2017-12-04 23:29:28
阅读次数:
221
一、定义 1、生成树 在一个无向连通图中,如果存在一个连通子图包含原图中的所有结点和部分边,且这个子图不存在回路,那么该子图被称为原图的一棵生成树。 2、最小生成树 所有生成树中,边权和最小的那一棵(或那几棵)叫做最小生成树(MST)。 二、构造算法 有两种算法来构造最小生成树:普里姆(Prim)算 ...
分类:
其他好文 时间:
2017-12-04 00:14:15
阅读次数:
256
Part1 : 插头DP 从一道题讲起: 给你一个m n的棋盘,有的格子是障碍,问共有多少条回路使得经过每个非障碍格子恰好一次 (m, n ≤ 12) " 基于连通性状态压缩的动态规划问题 " Definition 1 插头 : 插头DP有两种实现方法:逐行和逐格 逐格不需要预处理出所有可行状态,较 ...
分类:
其他好文 时间:
2017-12-02 16:14:18
阅读次数:
168
学了插头DP三天,终于明白了它的原理。 然而码代码的时候仍然觉得异常恶心,分类讨论+位运算orz~~~~~学了插头DP,代码能力又上了一个台阶,感觉翻车的机会又少了~~ 先上计算哈密顿回路的代码。坑比~~两小时的码量。 感觉看别人的代码不太懂,有些东西自己推一下就出来了。 #include<cstd ...
分类:
其他好文 时间:
2017-11-29 19:42:57
阅读次数:
146
题目链接:http://uoj.ac/problem/117 题目大意: 解题思路:先判断度数: 若G为有向图,欧拉回路的点的出度等于入度。 若G为无向图,欧拉回路的点的度数位偶数。 然后判断连通性,并且输出路径需要用套圈法(其实我也不是很懂)。 还学了一些骚操作: ①用链式前向星存图,如果是有向图 ...
分类:
其他好文 时间:
2017-11-28 23:11:13
阅读次数:
177