随笔分类 - 数据结构
摘要:题意一些精灵住在一棵二叉搜索树上(???),给出一个序列表示这棵二叉搜索树(输入n个数的第一个数为根节点,第二个数和这个根节点比较大小,假如大于当前根节点的值,就往右边的节点走,小于往左边的节点走),现在邮递员要给他们送信,求送信每次走的方向。思路题目太长了...
阅读全文
摘要:题意给出一些单词,再给出一些前缀,求有多少个单词包含这个前缀。思路用map统计水过。赛后意外的发现自己的代码跑了900+ms,为什么这么多人才跑了60+ms (滑稽) 更好的算法是用Tire树(字典树)操作,查询前缀出现的次数,就开一个sum[],表示位置i...
阅读全文
摘要:题意给出一个长度为n的数字串, 要求删去d个数字, 使得剩下的总数字最大 (1 ≤ d #include #include #include #include #include #define mst(a) memset(a, 0, sizeof(a))...
阅读全文
摘要:思路比赛的时候愣是用map的值代表了这个人所处家谱中的层次 后来借鉴了小明学长的思路, 给每个人编id号, 用值表示每个对应的id 用fa[maxn]存的是每个人的父亲id, fa[id] = 父亲的id有一个小问题, AC之后想关闭IO同步提一波速, ...
阅读全文
摘要:题意切割木板, 比如一根长21的木板要切割成5, 8, 8的三块, 每次切割花费的金额为两断的长度. 比如先把21切成16和5, 花费21元, 再把16切成8和8, 花费16元, 总计消费37元. 若先把21切成13和8, 花费21元, 再把13切成8和5,...
阅读全文
摘要:题意一辆车要行驶长L的路, 每走单位长度为1的路就消耗单位数量为1的汽油 开车前有P的油, 给出N对数字表示加油站, 第一个数为加油站距离终点距离( 这里一开始读题没仔细读 ) , 第二个数是加油站供给的油量思路学习白书的思路 优先队列 priority_...
阅读全文
摘要:题意有一叠52张的扑克牌(除去大王小王), 每次在总叠堆里拿出最上面的一张, 分别放在1-7叠堆的最下面. 如果放下这张牌之后, 小叠堆的最上面2张+最下面1张 / 最上面2张+最下面1张 / 最下面3张 的和为10或20或30, 则将这三张牌抽出来并放到总...
阅读全文
摘要:题意看图写树思路DFS递归AC代码(学习紫书)#include #include #include #include using namespace std;const int maxn = 200 + 10;char tre[maxn][maxn];int...
阅读全文
摘要:题意先序输入一个带权二叉树, -1即无该儿子思路水题 递归输入, 用数组保存每个水平位置的总和即可一开始没读清楚题, 以为是每一行作为一个二叉树, 本来想用string输入stringstream切割, 观察样例就能推翻AC代码#include #inclu...
阅读全文
摘要:题意判断树状天平是否平衡 输入的重量如果是0说明该节点下面有子树思路水题 递归输入并判断即可 每次更新子树的重量 注意一下格式AC代码#include #include #include using namespace std;bool judge( int...
阅读全文
摘要:题意给出一棵带权二叉树的中序和后序遍历 找一个叶子使得它到根的路径上的权和最小。 如果有多解,该叶子本身的权应尽量小思路学习了一下紫书给的思路和代码先根据中序和后序遍历构造二叉树 根据后序遍历找到树根,然后在中序遍历中找到树根,从而找出左右子树的结点列表,然...
阅读全文
摘要:题意给出一颗二叉树的前序遍历和中序遍历, 输出后序遍历思路无需建树, 递归操作即可记录前序遍历(先根遍历) : 如果二叉树为空则进行空操作, 否则首先访问根节点, 然后前序遍历左子树, 最后前序遍历右子树中序遍历(中根遍历) : 如果二叉树为空则进行空操作,...
阅读全文
摘要:题意 你有一行盒子,从左到右依次编号为1, 2, 3,…, n。可以执行以下4种指令: 1 X Y表示把盒子X移动到盒子Y左边(如果X已经在Y的左边则忽略此指令)。 2 X Y表示把盒子X移动到盒子Y右边(如果X已经在Y的右边则忽略此指令)。 ...
阅读全文
摘要:题意给你一棵完全二叉树,输入0往左走,1往右思路由于是二叉树,正好相应二进制数 直接存到字符串里模拟AC代码#include #include #include using namespace std;int main(){ int T, t, len...
阅读全文
摘要:题意在二叉树结点1处放一个小球,它会往下落。每个内结点上都有一个开关,初始全部关闭,当每次有小球落到一个开关上时,状态都会改变。当小球到达一个内结点时,如果该结点上的开关关闭,则往左走,否则往右走,直到走到叶子结点 思路根据奇偶找规律 引用一下紫书写的 每...
阅读全文
摘要:题意破碎的键盘(又名 悲剧文本) 你有一个破损的键盘。键盘上的所有键都可以正常工作,但有时Home键或者End键会自动按下。你并不知道键盘存在这一问题,而是专心地打稿子,甚至连显示器都没打开。当你打开显示器之后,展现在你面前的是一段悲剧的文本。你的任务是在...
阅读全文
摘要:题意矩阵链乘 求乘法次数思路利用栈 遇到字母入栈, 遇到 ‘)’ 出栈并计算, 结果再次入栈AC代码#include #include #include #include using namespace std;struct matrix{ int a...
阅读全文
摘要:题意刘汝佳出的一道简单题? 一看出题人就知道肯定不简单233 大概是就是输入一个数组 然后找几个下标 比如4 2就是找到数组中第4个2所在下标, 找不到输出0思路蓝书上给的思路是真的很巧妙, 复杂度很小(题目时间1000ms) 把输入组织成一个可以”直接读...
阅读全文
摘要:题意一个包包, 可能是栈, 队列, 优先队列, 或其他 操作1代表存入数据 操作2代表拿出顶端/首端的一个元素思路本以为是水题, 居然还WA了两次 仔细思考 发现有个特殊情况没考虑到: 如果存入数量小于取出数, 那么一定是impossible !!!AC代码...
阅读全文
摘要:题意排队打印。每个打印任务有自己的优先级1~9,数字越大优先级越高。每个打印任务需要1分钟,如果队首后面有优先级更高的打印任务,则队首站到队尾,直到队首为队列中最高优先级的任务,则打印。思路水题 操作用STL队列queue 用mrk[10]分别记录1~9优先...
阅读全文

浙公网安备 33010602011771号