11 2018 档案
摘要:思路: (1)搜索二叉树的结构就是二叉树的左右两个节点,所有左子节点的值小于右子节点的值,然后还要有一个lazy标志,用于lazy删除。 (2)搜索二叉树主要有一下几个操作:建立搜索二叉树;建立空树;查找x的位置;查找最大,最小值的位置; 插入节点,删除节点;打印二叉树; (3)建立搜索二叉树,不同
阅读全文
摘要:思路: (1)先用堆栈将后缀表达式转化为表达式树,然后再将树进行中缀遍历,如果左右子树不为空就输出左右括号。 (2)后缀表达式转化为表达式树时要用堆栈进行: 如果是数字(字母)就入栈,如果是运算符就取堆栈的前两个节点,然后建立新的子树再将头结点入栈。 #include<iostream> #incl
阅读全文
摘要:思路: (1)从头结点开始,p=L->next,然后从p开始,依次翻转p与p的前一个节点的指针的方向。 (2)提前记录p的next节点,因为指针变换后不会再指向下一个。 (3)令p的next指向p前面的节点。 (4)记录当前p指针,为下一次改变指针方向做准备。 (5)考虑头结点的情况,如果指针p的前
阅读全文
摘要:思路:与队列相同,就是判断是否合法要花费时间,复杂度为O(1); 在双端队列的表头插入或者在双端队列的表尾进行删除时要注意可能越界,用循环队列的思想取余就好了。 #include<iostream> #include<cstdio> #include<cstring> #include<cstdli
阅读全文
摘要:1、队列的链式存储: 思路: (1)建立两个结构体,一存储数据及下一个节点的信息,另一个存储链表的表头和表尾指针。 (2)出队列时一定要注意如果只剩下最后一个节点,要提前让Q->Top=Q->Rear,因为如果tp被删除后,就不能再去调用它的next, 最后就找不到结果了。 #include<std
阅读全文
摘要:问题描述: 编写一个用数组实现的两个栈的例程。除非数组的每一个单元都被使用,栈例程不能有溢出声明。 思路: 用一个结构体表示两个栈,有两个头指针,一个从头开始,另一个从末尾开始。 如果两个堆栈的头指针相邻了,就说明所有空间都被占用了,即堆栈满了。 #include<iostream> #includ
阅读全文
摘要:一、堆栈的链式存储 #include<stdio.h> #include<stdlib.h> #include<string.h> struct Node{ int data; struct Node* next; }; typedef struct Node* Stack; int IsEmpty
阅读全文
摘要:题目要求:不同于我们已经给出的删除方法,另一种是使用懒惰删除(lazy deletion)的方法。为了删除一个元素,我们标记上该元素被删除(使用一个 附加的域)。表中被删除和非被删除作为数据结构的一部分被保留。如果删除元素和非删除元素一样多,我们遍历整个表,对所有标记点执行标准的删除 算法。 (1)
阅读全文
摘要:题目:编写一个程序,将一个图读入邻接表, (1)链表: #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> using namespace std; struct Node{ int data; struct
阅读全文
摘要:1、链表思想:每个节点都存储分为数据和地址两个方面。 数据是链表记录的内容,地址分为此节点的地址和它的前驱和后缀地址。 通过,每次通过地址来时先链表的遍历,查找,删除等操作。 2、链表分类 如果是单链表,就是只有后继,只能向后移动,因此,为了方便查找链表的某个节点,常常设置头结点。 双向链表:同时具
阅读全文
摘要:1、桶式排序: 有n个数的数组,可以建立一个m大小的桶序列count数组,遍历n个数字的数组,每次进行cout[a[i]]++,然后遍历count,如果统计过 就输出。时间复杂度为O(n+m)。 2、基数排序: 与桶排序的思想类似,如果桶排序的n很大,再建立一个m容量的数组就不合适了。 所以可以用多
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1198 思路: 题意是求最小的灌溉点,就是将几个相连的水田合并。可以用并查集,难点在如何用。 首先,将初始化数组设为一维数组(这里一开始我想用二维的,可怎么也行不出来) 建立一个二维数组,判断两个点之间是
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1207 思路: 可以按照类似汉诺塔的推导形式来推导, 首先,有四个柱子,a,b,c,d。 (1)a的x个盘子借b,d转移到c上,要F(x)次; (2)a的n-x个盘子借b转移到d上(就是普通的汉诺塔)要2
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1209 注意:1、时钟到12要变为0 2、注意比较角度相同的情况
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181 思路:bfs,就是每次找到匹配麻烦一点,注意如果结尾和开头相同,就不算。
阅读全文
摘要:匈牙利算法及二分图:https://www.cnblogs.com/wangjunyan/p/5563154.html 匈牙利算法:https://blog.csdn.net/sunny_hun/article/details/80627351 相关题目: hdu-1528(一般的匹配):http:
阅读全文
摘要:题目链接: 思路:找n个巫师和m个魔棒匹配的问题,匈牙利算法模板 匈牙利算法:https://blog.csdn.net/sunny_hun/article/details/80627351
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 思路:每确定一个数,后面一个数肯定比它大。所以可以先从最后一个数开始,不断向前确定前面的状态,推导出 状态转移方程为:dp[i] = dp[i]+max(dp[j]) (j<i&&a[j]<a[i
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176 思路:类似数塔问题, 从最后一秒开始考虑,每次这一秒的状态确定意味着前一秒的状态也已经确定,所以从下向上进行dp 注意数组要开大一些。
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 思路:要求从顶到底的最大值,可以反过来考虑,从底部向上。 只有下面一行的最大值确定,这一行的最大值才能确定。
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1173 思路:最短距离:就是现将x,y从小到大排序,然后去中间点就行了。(注意:本题答案不唯一)
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1163 思路: 九余数定理:一个数对九取余的结果叫做九余数, 一个数的各个位数相加的得到的小于10的数也叫九余数
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1133 思路:有m个人拿50元的纸币,n个人拿100元的纸币门票价格是50元,要求每个售票员遇到100元时都能找回顾客50元。 (1)如果m<n就不行,ans=0; (2)m>=n,总共有C(m+n,n)
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1150 思路:题目中给出两个机器A,B;给出k个任务,每个任务可以由A的x状态或者B的y状态来完成。 完成任务的顺序可以任意改变,每次改变一次状态需要重启一次机器。 将每个状态看做一个点,每个任务看做两个
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1147 思路:判断每条线段,如果将要输入的线段和已经有的线段相交,则这条线段不算。 参考文章:https://blog.csdn.net/hexianhao/article/details/5125448
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1116 思路:将字符串的头元素和尾元素视为图的x,y节点,然后合并x,y。 如果这个图不连通,则门不能打开,如果路径是欧拉回路或者欧拉通路,则门可以打开。
阅读全文
摘要:题目链接: 思路:利用前一个状态找到本次状态需要的次数,就是递推。 建立一个二维数组dp[i][j] ,i表示行,j表示多余的格子。 可以分为三种状态dp[i][0], dp[i][1] ,dp[i][2]; 迭代公式是:
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1141 参考文章:https://blog.csdn.net/fei____fei/article/details/24435837 思路:题目真是好难懂呀,大意是这样的,给出一个n为的计算机,求出这个计
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1142 思路:1、不是求最短路径,而是求如果两个点A,B直接相连,且A到终点的距离大于B到终点的距离,求这样A,B之间的通路的个数。 2、以终点为起点来进行dij 3、记忆化搜索是,用p[i]数组记录符合
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1140 思路:卫星只能消灭地面上一部分的风暴,即风暴与卫星的距离最大是卫星到地球的切线的距离,大于这个距离就不行了。 (注意PI的精度)
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1131 思路:R(x)=h(x)*n!=C(n,2*n)*n!=A(n+2,n*2);
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1130 卡特兰数:https://blog.csdn.net/qq_33266889/article/details/53409553 参考文章:https://blog.csdn.net/sunshin
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1129 注意:c_code[i]=(p_code[i*k%n]-i)%28;
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1128 思路:从0,开始,每次求一个数x的d(x),然后判断如果x没有标记,则说明x没有由任意一个d(i)(i<=x)组成,因为d(x)是递增的。
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1124 思路:每五个数1个0,5个5就2个0(不用管2,一定充足)
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1115 思路:带公式:http://www.cnblogs.com/jbelial/archive/2011/08/08/2131165.html
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1121 参考文章:https://blog.csdn.net/fengzhizi76506/article/details/53729148 思路:有一个n阶序列P(n),从第二项开始每一项减去前一项得到
阅读全文
摘要:思路: (1)建立两个字符型的堆栈和一个浮点数的堆栈 (2)先输入表达式,将表达式转换为后缀表达式 (3)求出后缀表达式的结果
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1107 注意:1.路线是要反向的,走不通就反向; 2.输入输出全部是整形 3.攻击力不断变化
阅读全文
摘要:Description 这是一道模板题。 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入 x 数; 删除 x数(若有多个相同的数,因只删除一个); 查询 x 数的排名(若有多个相同的数,因输出最小的排名); 查询排名为 x 的数; 求 x 的前趋(前趋定义为小于
阅读全文

浙公网安备 33010602011771号