ACM/ICPC代码库详解
我是你的小草莓
这个作者很懒,什么都没留下…
展开
-
无向图找桥
割顶是去掉后让无向图不再连通的点。 在一棵DFS树中, 1.根root是割顶 ------------- 它至少有两个儿子 2.其他点v是割顶 ------------- 它有一个儿子u, 从u或者u的后代出发没有指向v祖先(不含v)的B边, 则删除v以后u和v的父亲不连通, 故为割顶。 桥(割边)是去掉后让无向图不再连通的边。 //下面的算法找到一条转载 2014-04-01 21:39:14 · 2357 阅读 · 0 评论 -
DAG的深度优先搜索标记
今天开始学习acm算法库,也是第一天开始写博客。希望自己有个好的开端,能够坚持下去。也希望大家能够批评指正。 备注:如果对各种边类型有疑问,可以参看这个案例http://www.93337.com/ism/edge.html //有向图的深度优先搜索遍历/*==================================================*\ | DAG的深度优先搜索标记转载 2014-04-01 09:12:13 · 1561 阅读 · 0 评论 -
动态规划算法
一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。 二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能转载 2014-09-07 22:20:08 · 301 阅读 · 0 评论 -
最长连续公共子序列
动态规划有一个经典问题是最长公共子序列,但是这里的子序列不要求连续,如果要求序列是连续的,我们叫公共子串,那应该如何得到这个串呢? 最简单的方法就是依次比较,以某个串为母串,然后生成另一个串的所有长度的子串,依次去母串中比较查找,这里可以采用先从最长的子串开始,减少比较次数,但是复杂度依然很高! 然后重新看一下这个问题,我们建立一个比较矩阵来比较两个字符串str转载 2014-09-08 10:36:16 · 671 阅读 · 0 评论 -
0-1背包问题(动态规划)
有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 这个问题的特点是:每种物品只有一件,可以选择放或者不放。 算法基本思想: 利用动态规划思想 ,子问题为:f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。 其状态转移方程是:f[i][v]=max{转载 2014-09-09 16:28:53 · 547 阅读 · 0 评论 -
利用gdb在汇编指令级调试C程序
关于GDB调试C程序的常用命令与手段就不多说了,这里主要介绍一下如何对C程序做到汇编指令级别的调试。首先是获取汇编代码,这可以通过disassemble命令或x命令或类似的命令: [root@localhost test]# gdb ./a.out -q (gdb) list 1 #include 2 #include 3 4 int callee(int a, int b,转载 2015-06-14 17:23:22 · 809 阅读 · 1 评论