摘要:
开3*n的并查集,其中x用来连接与x同类的,x+n用来连接x吃的,x+2*n用来连接x被吃的。 1 x y时,如果 x吃y 或 x被y吃,那么为假话, 否则x与y同类,x吃的y也吃,x被吃的y也被吃; 2 x y时,如果 x与y同类(x与x自然也是同类) 或 y吃x,那么为假话, 否则x吃y,y被x 阅读全文
posted @ 2016-06-21 20:30
FuTaimeng
阅读(398)
评论(0)
推荐(0)
摘要:
5.3.3.堆排序 堆:设有数据元素的集合(R1,R2,R3,...Rn)它们是一棵顺序二叉树的结点且有 Ri<=R2i 和Ri<=R2i+1(或>=) 堆的性质:堆的根结点上的元素是堆中的最小元素,且堆的每一条路径上的元素都是有序的。 堆排序的思想是: 1)heapdown调整堆:每次调整都是从父 阅读全文
posted @ 2016-06-21 15:49
FuTaimeng
阅读(278)
评论(0)
推荐(0)
摘要:
概念: 树的路径长度:一棵树的每一个叶结点到根结点的路径长度的和。 带权二叉树:给树的叶结点赋上某个实数值(称叶结点的权)。 带权路径长度:各叶结点的路径长度与其权值的积的总和。 哈夫曼树(最优二叉树):带权路径长度最小的二叉树。 如何构建哈夫树:(思想是:权越大离跟越近) 哈夫曼码:哈夫曼树的非叶 阅读全文
posted @ 2016-06-21 15:19
FuTaimeng
阅读(428)
评论(0)
推荐(0)
摘要:
在优先队列中,优先级高的元素先出队列。 标准库默认使用元素类型的<操作符来确定它们之间的优先级关系。优先队列的第一种用法,也是最常用的用法: priority_queue<int> qi; 通过<操作符可知在整数中元素大的优先级高。故示例1中输出结果为:9 6 5 3 2第二种方法:在示例1中,如果 阅读全文
posted @ 2016-06-21 15:00
FuTaimeng
阅读(206)
评论(0)
推荐(0)
摘要:
d[l][i]表示:从第i个珠子开始,连续l个珠子合并后释放的最大能量 状态转移方程d[l][i] = d[j][i] + d[l-j][i+j] + w[i]*w[i+j]*w[i+l],j从1到l-1 注意实际操作时i+j和i+l要mod n. 代码: 阅读全文
posted @ 2016-06-21 13:58
FuTaimeng
阅读(231)
评论(0)
推荐(0)
摘要:
Bfs搜索 1.把棋盘直接作为状态: 测试点#1.in 结果:AC 内存使用量: 488kB 时间使用量: 1ms 测试点#2.in 结果:AC 内存使用量: 1128kB 时间使用量: 3ms 测试点#3.in 结果:AC 内存使用量: 1128kB 时间使用量: 6ms 测试点#4.in 结果: 阅读全文
posted @ 2016-06-21 11:05
FuTaimeng
阅读(304)
评论(0)
推荐(0)
摘要:
康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。 康托展开的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的。 以下称第x个全排列是都是指由小到大的顺序。 公式 X=a[n]*(n-1)!+a[n-1]*(n-2)!+…+a[i]*(i-1)!+…+a[1]*0! 阅读全文
posted @ 2016-06-21 09:03
FuTaimeng
阅读(337)
评论(0)
推荐(0)

浙公网安备 33010602011771号