最小生成树是图论中的一个概念。首先介绍一下什么是生成树。生成树就是将一个图中所有的顶点全部连接在一起,并且保证图中没有出现回路。
下图不是生成树,因为没有连接所有的顶点。
下图不是生成树,因为图中有回路。
像下图这样的才是生成树。
生成树的概念介绍完了。那么最...
为了简化问题,我们需要作出一些假设。假设图中每条边的权重都是不一样的,假设整个图是连通的。这样假设的目的就是让最小生成树的计算结果是唯一的。
图的切割
介绍算法之前,需要先了解图的切割。图的切割就是将顶点分割成两部分,切到的边称之为交叉边。下图红色的先就是交叉边。
在最小生成树中,无论如何切割,最小生成树总是从交叉边中选择最小的...
统计难题
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)
Total Submission(s): 16945 Accepted Submission(s): 7292
Problem Description
Ignatius最近遇到一个难题,老师交给他很...
11488 - Hyper Prefix Sets
Time limit: 2.000 seconds
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 5000000;
vector vs;
int cnt,ans...
dp题:
1、写状态转移方程;
2、考虑初始化边界,有意义的赋定值,还没计算的赋边界值;
3、怎么写代码自底向上计算最优值
今天做了几个基础dp,全部是dp方程写对但是初始化以及计算写错
先是poj 1651 其实就是个赤裸裸的矩阵连乘,dp方程很容易写出
dp[i][j]=min(dp[i][k]+dp[k+1][j]+r[i]*c[k]*...
二分图匹配:
最大匹配数=最大独立集=最小点覆盖
最小路径覆盖=点数-最大匹配数
Strategic Game
Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4739 Accepted Submission(...
Given a binary tree, return the preorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3},
1
2
/
3
return [1,2,3].
Note: Recursive soluti...
题目链接:POJ 1573 Robot Motion
一个小模拟,很简单,按照提示一步步走就是了
#include
#include
#include
#include
#include
using namespace std;
int n = 0,m = 0,st = 0;
int map[10][20],dis[10][20];;...
场景
某年某月某日,产品环境的2000多封自动发出的Email让我们项目组许多人的邮箱爆了。追查下来根源是一个很不起眼的缺陷。我们的程序对一个布尔值做了if(XXX = true)的判断,可来自上游系统的这个值不光是有true和false,还有空。也就是说上游系统中使用的是一个大布尔,是有true, false,null三态的, 而我们程序使用的是小布尔,只有true和false两态。
掉在...
本题就是考剪枝法了。
应该说是比较高级的应用了。因为要使用heuristic(经验)剪枝法。要总结出这个经验规律来,不容易。我说这是高级的应用也因为网上太多解题报告都没有分析好这题,给出的程序也很慢,仅仅能过掉,由此看来很多人没有做好这道题。
这里我需要更正一下网上流行的说法:奇偶剪枝法。
其实本题使用奇偶剪枝法并不能太大提高速度,只能说仅仅让使用奇偶剪枝过掉。所以网上说本题使用奇偶剪枝的,其实并不能提高速度。
原因:
奇偶剪枝只能剪枝一次,不能在递归的时候剪枝,因为只要初始化位置符合奇偶性,那么之后的任...