![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
acm只是个兴趣
文章平均质量分 64
L_apple8
keep coding
展开
-
hdu1166 敌兵布阵 线段树入门
渣渣做的线段树入门的题 题目地址:hdu1166 敌兵布阵 #include #include using namespace std; const int N = 50000+10; int a[N],p;//p是指向数组a的指针,每次新的数据记得初始化 int s_tree[3*N];//每个结点只存储工兵数量的和 void buit(int l,int r,int num){ if(l原创 2016-01-23 18:37:21 · 290 阅读 · 0 评论 -
并查集系列
并查集类似静态链表,使用数组实现,元素的值就是指针指向,即父结点。 每个集合中选出一个代表,这个代表就是这棵树中的根。 每个元素指向其父亲,根节点的值指向自己。 并查集树的表示 并查集的基本操作: 1.void makeSet(int s):建立一个并查集,其中包含s个单元素集合 2.int find(int x):其中x是指要查找的元素的ind原创 2016-02-20 15:41:34 · 325 阅读 · 0 评论 -
并查集&poj1182
题目地址:poj1182 说实话,看了这篇文章之后才理解的食物链总结 代码基本也是照抄的,这里说说理解。 显然是用并查集,但这里不是简单地使用并查集,好像大家都称之为带权并查集。 错误有3种: 1) 当前的话与前面的某些真的话冲突,就是假话; 2) 当前的话中X或Y比N大,就是假话; 3) 当前的话表示X吃X,就是假话。 假如X,Y不是第2)第3)种错误的关原创 2016-02-21 22:43:53 · 356 阅读 · 0 评论 -
字典树模板题&hdu1251
题目地址:统计难题 字典树结构用处处理字符串的问题非常方便。原创 2016-03-09 12:03:51 · 500 阅读 · 0 评论 -
使用0x3f3f3f表示无穷大
如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值。如果这个无穷大只用于一般的比较(比如求最小值时min变量的初值),那么0x7fffffff确实是一个完美的选择,但是在更多的情况下,0x7fffffff并不是一个好的选择。 很多时候我们并不只是单纯拿无穷大来作比较,而是会运算后再做比较,例如在大转载 2016-09-13 14:40:01 · 6448 阅读 · 1 评论 -
背包九讲&01背包
01背包 题目:有N件物品和一个容量为V的背包。放入第i件物品耗费的费用为Ci,得到的价值为Wi。每种物品仅有一件,可选择放或不放(不放就是0,放就是1,谓之01背包)。将哪些物品装入背包可使总价值最大? 动态规划分析:这是一个动态规划求最优的问题。动态规划都可以简单理解为填表法,利用表记录子问题的最优解,达到以空间换时间的目的。一般都可以维护一个记录值的value[][]表和一个记录状态的stat原创 2016-11-11 21:59:44 · 455 阅读 · 2 评论 -
动态规划&背包九讲&完全背包
完全背包 题目:有N件物品和一个容量为V的背包,每种物品都有无限件可用。放入第i件物品耗费的费用为Ci,得到的价值为Wi。求解:将哪些物品装入背包,可使这些物品的耗费的费用总和不超过背包容量,且价值总和最大 分析:这个问题类似于01背包,不同的是每件物品都有无限件,可以取0,1,2···v/ci件。 状态转移方程1:设F[i][v]表示容量为v的背包在选择前i件物品所能获得的最大价值。F[i][v]原创 2016-11-13 16:06:26 · 404 阅读 · 0 评论 -
动态规划&数字三角形
数字三角形 题目:有一个由非负整数组成的三角形,第一行只有一个数,除了最下行之外的每个数左下方和右下方各有一个数,只能往左或者往右走一步,从上到下加起来最大的数是多少? 分析:求最优的问题,考虑使用动态规划。动态规划可以用填表法可以更好理解其状态转移方程,一般可以维护两个表:value[][]表用以记录子问题的最优解,status[][]表用以记录状态(有些问题需要记录填表的路径)。这里使用a原创 2016-11-15 00:04:36 · 531 阅读 · 0 评论