数据结构
文章平均质量分 64
请叫我西木同学
这个作者很懒,什么都没留下…
展开
-
hdu - 6136
HDU - 6136解法一 第一种解法比较直观,最初始状态环上有 nn个人,第一次淘汰发生必然是环上相邻的两个人相撞。注意到第一个被淘汰的人不会对后续过程有任何影响,如果我们能找出谁是第一个被淘汰的,直接把这个人从初始状态中删除,就能把问题变成一个只有 n−1n-1个人的子问题,这个子问题和原问题有相同的答案。 于是我们可以用一个堆维护环上所有相邻人相遇的时间,从中取出最小值,就能找到第一个被淘原创 2017-08-18 20:11:53 · 231 阅读 · 0 评论 -
hdu6109
这道题有两个关系,相等关系和不等关系,相等关系有传递性,这个很容易想到并查集这个数据结构来表示这个关系,然后是不等关系,这个因为没有传递关系,所以不能用并查集来表示。这道题一开始我想到的是挑战程序设计书上的食物链那道题,想要用unite(a,b+MAXN),unite(a+MAXN,b)来表示不等关系,这种方法是错的,这种方法是当a,b表示不在同一集合,并且集合种类只有两个的时候才是这样做法。 然原创 2017-08-13 20:35:23 · 402 阅读 · 0 评论 -
Admiral HDU - 6171
这题很像那道八数码的题目,可以把21个位置每个位置有6种数,那么总共有21的6次方种状态,那么是可以用一个longlong来表示状态,用set来判重的。但是这样还是不够快。我们可以利用A星算法来优化搜索过程A星算法的知识,A星算法中有两个重要的值,已走步数和到终点估计值,已走步数这个很容易得到,到终点的估计值这个我们可以估计每个不合法的点直接挪过去他该去的那一行该走的步数。估价值h(n)<=原创 2017-08-24 19:56:16 · 267 阅读 · 0 评论 -
数据结构实验B树的C++代码实现
采用整数为顶点值和多叉链表为存储结构,实现抽象数据类型B树。ADT BTNode{ 数据对象:D是具有相同特性的数据元素的集合,称为节点集。 数据关系: 若D为空集,则称为空树; (1)树中每个结点最多含有m棵子树; (2)若根结点不是叶子结点,则至少有2个子树; (3)除根结点之外的所有非终端结点至少有┌m/2┐棵子树; (4)每个非终端结点中包含信息:(n,A0,K原创 2017-10-23 21:16:08 · 5598 阅读 · 4 评论 -
GDCPC2018广东省赛C题
题目大概意思给出一棵树,树上的每个结点的值。 询问从结点a到b的路径上的值,对于值val来说,最大的异或和是多少这是一道经典可持久化字典树的题目#include<bits/stdc++.h>using namespace std;const int N=2e5+5,M=30;int ch[N*35][2],tot,num[N*32],a[N],T[N];...原创 2018-05-25 00:58:07 · 666 阅读 · 0 评论