
acm只是个兴趣
文章平均质量分 68
L_apple8
keep coding
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu1166 敌兵布阵 线段树入门
渣渣做的线段树入门的题题目地址:hdu1166 敌兵布阵#include#includeusing 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 · 341 阅读 · 0 评论 -
并查集系列
并查集类似静态链表,使用数组实现,元素的值就是指针指向,即父结点。每个集合中选出一个代表,这个代表就是这棵树中的根。每个元素指向其父亲,根节点的值指向自己。并查集树的表示并查集的基本操作:1.void makeSet(int s):建立一个并查集,其中包含s个单元素集合2.int find(int x):其中x是指要查找的元素的ind原创 2016-02-20 15:41:34 · 401 阅读 · 0 评论 -
并查集&poj1182
题目地址:poj1182说实话,看了这篇文章之后才理解的食物链总结代码基本也是照抄的,这里说说理解。显然是用并查集,但这里不是简单地使用并查集,好像大家都称之为带权并查集。错误有3种:1) 当前的话与前面的某些真的话冲突,就是假话; 2) 当前的话中X或Y比N大,就是假话; 3) 当前的话表示X吃X,就是假话。假如X,Y不是第2)第3)种错误的关原创 2016-02-21 22:43:53 · 435 阅读 · 0 评论 -
字典树模板题&hdu1251
题目地址:统计难题字典树结构用处处理字符串的问题非常方便。原创 2016-03-09 12:03:51 · 559 阅读 · 0 评论 -
使用0x3f3f3f表示无穷大
如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值。如果这个无穷大只用于一般的比较(比如求最小值时min变量的初值),那么0x7fffffff确实是一个完美的选择,但是在更多的情况下,0x7fffffff并不是一个好的选择。很多时候我们并不只是单纯拿无穷大来作比较,而是会运算后再做比较,例如在大转载 2016-09-13 14:40:01 · 6614 阅读 · 1 评论 -
背包九讲&01背包
01背包题目:有N件物品和一个容量为V的背包。放入第i件物品耗费的费用为Ci,得到的价值为Wi。每种物品仅有一件,可选择放或不放(不放就是0,放就是1,谓之01背包)。将哪些物品装入背包可使总价值最大?动态规划分析:这是一个动态规划求最优的问题。动态规划都可以简单理解为填表法,利用表记录子问题的最优解,达到以空间换时间的目的。一般都可以维护一个记录值的value[][]表和一个记录状态的stat原创 2016-11-11 21:59:44 · 617 阅读 · 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 · 463 阅读 · 0 评论 -
动态规划&数字三角形
数字三角形题目:有一个由非负整数组成的三角形,第一行只有一个数,除了最下行之外的每个数左下方和右下方各有一个数,只能往左或者往右走一步,从上到下加起来最大的数是多少?分析:求最优的问题,考虑使用动态规划。动态规划可以用填表法可以更好理解其状态转移方程,一般可以维护两个表:value[][]表用以记录子问题的最优解,status[][]表用以记录状态(有些问题需要记录填表的路径)。这里使用a原创 2016-11-15 00:04:36 · 607 阅读 · 0 评论