![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 64
龙征天
这个作者很懒,什么都没留下…
展开
-
[leetcode] 863二叉树中所有距离为K的结点
问题描述给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。示例输入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2输出:[7,4,1]解释:所求结点为与目标结点(值为 5)距离为 2 的结点,值分别为 7,4,以及 1注意,输入的 “root” 和 “target” 实际上是树上的结点。上面的原创 2021-07-28 18:38:35 · 231 阅读 · 0 评论 -
宇宙狗的危机(区间dp)
问题描述在瑞神大战宇宙射线中我们了解到了宇宙狗的厉害之处,虽然宇宙狗凶神恶煞,但是宇宙狗有一个很可爱的女朋友。最近,他的女朋友得到了一些数,同时,她还很喜欢树,所以她打算把得到的数拼成一颗树。这一天,她快拼完了,同时她和好友相约假期出去玩。贪吃的宇宙狗不小心把树的树枝都吃掉了。所以恐惧包围了宇宙狗,他现在要恢复整棵树,但是它只知道这棵树是一颗二叉搜索树,同时任意树边相连的两个节点的gcd(greatest common divisor)都超过1。但是宇宙狗只会发射宇宙射线,他来请求你的帮助,问你能否原创 2020-06-06 11:25:44 · 1604 阅读 · 0 评论 -
ZJM 与纸条(KMP算法)
问题描述ZJM 的女朋友是一个书法家,喜欢写一些好看的英文书法。有一天 ZJM 拿到了她写的纸条,纸条上的字暗示了 ZJM 的女朋友 想给 ZJM 送生日礼物。ZJM 想知道自己收到的礼物是不是就是她送的,于是想看看自己收到的礼物在纸条中出现了多少次。Input第一行输入一个整数代表数据的组数每组数据第一行一个字符串 P 代表 ZJM 想要的礼物, 包含英语字符 {‘A’, ‘B’, ‘C’, …, ‘Z’}, 并且字符串长度满足 1 ≤ |P| ≤ 10,000 (|P| 代表字符串 P 的长度)原创 2020-05-27 22:08:03 · 507 阅读 · 0 评论 -
ZJM 与生日礼物(字典树)
问题描述ZJM 收到了 Q老师 送来的生日礼物,但是被 Q老师 加密了。只有 ZJM 能够回答对 Q老师 的问题,Q老师 才会把密码告诉 ZJM。Q老师 给了 ZJM 一些仅有 01 组成的二进制编码串, 他问 ZJM:是否存在一个串是另一个串的前缀.Input多组数据。每组数据中包含多个仅有01组成的字符串,以一个9作为该组数据结束的标志。Output对于第 k 组数据(从1开始标号),如果不存在一个字符串使另一个的前缀,输出"Set k is immediately decodable",否原创 2020-05-27 20:45:07 · 359 阅读 · 0 评论 -
ZJM 与霍格沃兹(字符串哈希)
问题描述ZJM 为了准备霍格沃兹的期末考试,决心背魔咒词典,一举拿下咒语翻译题题库格式:[魔咒] 对应功能背完题库后,ZJM 开始刷题,现共有 N 道题,每道题给出一个字符串,可能是 [魔咒],也可能是对应功能ZJM 需要识别这个题目给出的是 [魔咒] 还是对应功能,并写出转换的结果,如果在魔咒词典里找不到,输出 “what?”Input首先列出魔咒词典中不超过100000条不同的咒语,每条格式为:[魔咒] 对应功能其中“魔咒”和“对应功能”分别为长度不超过20和80的字符串,字符串中保证不原创 2020-05-27 17:35:53 · 1290 阅读 · 0 评论 -
Q老师度假(变形矩阵快速幂优化DP)
问题描述忙碌了一个学期的 Q老师 决定奖励自己 N 天假期。假期中不同的穿衣方式会有不同的快乐值。已知 Q老师 一共有 M 件衬衫,且如果昨天穿的是衬衫 A,今天穿的是衬衫 B,则 Q老师 今天可以获得 f[A][B] 快乐值。在 N 天假期结束后,Q老师 最多可以获得多少快乐值?Input输入文件包含多组测试样例,每组测试样例格式描述如下:第一行给出两个整数 N M,分别代表假期长度与 Q老师 的衬衫总数。(2 ≤ N ≤ 100000, 1 ≤ M ≤ 100)接下来 M 行,每行给出原创 2020-05-23 09:34:34 · 941 阅读 · 0 评论 -
Q老师染砖(矩阵快速幂优化DP)
问题描述衣食无忧的 Q老师 有一天突发奇想,想要去感受一下劳动人民的艰苦生活。具体工作是这样的,有 N 块砖排成一排染色,每一块砖需要涂上红、蓝、绿、黄这 4 种颜色中的其中 1 种。且当这 N 块砖中红色和绿色的块数均为偶数时,染色效果最佳。为了使工作效率更高,Q老师 想要知道一共有多少种方案可以使染色效果最佳,你能帮帮他吗?Input第一行为 T,代表数据组数。(1 ≤ T ≤ 100)接下来 T 行每行包括一个数字 N,代表有 N 块砖。(1 ≤ N ≤ 1e9)Output输出满足条原创 2020-05-22 22:15:15 · 411 阅读 · 0 评论 -
Q老师的考验(矩阵快速幂)
问题描述Q老师 对数列有一种非同一般的热爱,尤其是优美的斐波那契数列。这一天,Q老师 为了增强大家对于斐波那契数列的理解,决定在斐波那契的基础上创建一个新的数列 f(x) 来考一考大家。数列 f(x) 定义如下:当 x < 10 时,f(x) = x;当 x ≥ 10 时,f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 * f(x-3) + …… + a9 * f(x-10),ai 只能为 0 或 1。Q老师 将给定 a0~a9,以及两个正整数 k m,询问 f(原创 2020-05-22 22:00:37 · 501 阅读 · 0 评论 -
[csp201809-3] 元素选择器(模拟)
Sample input11 5html..head....title..body....h1....p #subtitle....div #main......h2......p #one......div........p #twop#subtitleh3div pdiv div pSample output3 6 9 111 602 9 ...原创 2020-05-20 17:18:05 · 289 阅读 · 0 评论 -
TT的神秘任务3(单调队列优化DP)
问题描述TT 猫咖的生意越来越红火,人越来越多,也越来越拥挤。为了解决这个问题,TT 决定扩大营业规模,但猫从哪里来呢?TT 第一时间想到了神秘人,想要再次通过完成任务的方式获得猫咪。而这一次,神秘人决定加大难度。给定一个环,A[1], A[2], A[3], … , A[n],其中 A[1] 的左边是 A[n]。要求从环上找出一段长度不超过 K 的连续序列,使其和最大。这一次,TT 陷入了沉思,他需要你们的帮助。Input第一行一个整数 T,表示数据组数,不超过 100。每组数据第一行给原创 2020-05-19 21:01:49 · 392 阅读 · 0 评论 -
TT的苹果树(没有上司的舞会,树形DP)
问题描述在大家的三连助攻下,TT 一举获得了超级多的猫咪,因此决定开一间猫咖,将快乐与大家一同分享。并且在开业的那一天,为了纪念这个日子,TT 在猫咖门口种了一棵苹果树。一年后,苹果熟了,到了该摘苹果的日子了。已知树上共有 N 个节点,每个节点对应一个快乐值为 w[i] 的苹果,为了可持续发展,TT 要求摘了某个苹果后,不能摘它父节点处的苹果。TT 想要令快乐值总和尽可能地大,你们能帮帮他吗?Input结点按 1~N 编号。第一行为 N (1 ≤ N ≤ 6000) ,代表结点个数。接下来原创 2020-05-19 17:12:50 · 305 阅读 · 0 评论 -
TT的奖励(动态规划)
问题描述在大家不辞辛劳的帮助下,TT 顺利地完成了所有的神秘任务。神秘人很高兴,决定给 TT 一个奖励,即白日做梦之捡猫咪游戏。捡猫咪游戏是这样的,猫咪从天上往下掉,且只会掉在 [0, 10] 范围内,具体的坐标范围如下图所示。TT 初始站在位置五上,且每秒只能在移动不超过一米的范围内接住掉落的猫咪,如果没有接住,猫咪就会跑掉。例如,在刚开始的一秒内,TT 只能接到四、五、六这三个位置其中一个位置的猫咪。喜爱猫咪的 TT 想要接住尽可能多的猫咪,你能帮帮他吗?Input多组样例。每组样例输入一原创 2020-05-19 16:42:08 · 1079 阅读 · 0 评论 -
Week12-选做题2(状压DP)
问题描述马上假期就要结束了,zjm还有 n 个作业,完成某个作业需要一定的时间,而且每个作业有一个截止时间,若超过截止时间,一天就要扣一分。zjm想知道如何安排做作业,使得扣的分数最少。Tips: 如果开始做某个作业,就必须把这个作业做完了,才能做下一个作业。Input有多组测试数据。第一行一个整数表示测试数据的组数第一行一个整数 n(1<=n<=15)接下来n行,每行一个字符串(长度不超过100) S 表示任务的名称和两个整数 D 和 C,分别表示任务的截止时间和完成任务需要的天原创 2020-05-11 22:54:19 · 294 阅读 · 0 评论 -
Week12-选做题1(区间DP)
问题描述We give the following inductive definition of a “regular brackets” sequence:the empty sequence is a regular brackets sequence,if s is a regular brackets sequence, then (s) and [s] are regular brackets sequences, andif a and b are regular brackets s原创 2020-05-11 22:37:54 · 256 阅读 · 0 评论 -
Week12-必做题2(BFS搜索三维迷宫)
问题描述zjm被困在一个三维的空间中,现在要寻找最短路径逃生!空间由立方体单位构成。zjm每次向上下前后左右移动一个单位需要一分钟,且zjm不能对角线移动。空间的四周封闭。zjm的目标是走到空间的出口。是否存在逃出生天的可能性?如果存在,则需要多少时间?Input输入第一行是一个数表示空间的数量。每个空间的描述的第一行为L,R和C(皆不超过30)。L表示空间的高度,R和C分别表示每层空间的行与列的大小。随后L层,每层R行,每行C个字符。每个字符表示空间的一个单元。’#‘表示不可通过单元原创 2020-05-11 22:26:15 · 352 阅读 · 0 评论 -
[leetcode] 21 合并两个有序链表
问题描述将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例输入:1->2->4, 1->3->4输出:1->1->2->3->4->4模版/** * Definition for singly-linked list. * struct ListNode { * int v...原创 2020-05-01 09:51:08 · 782 阅读 · 0 评论 -
[leetcode] 202 快乐数(快慢指针)
问题描述编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。示例输入:19输出:true解释:12+92=821^2 + 9^2...原创 2020-04-30 10:53:37 · 241 阅读 · 1 评论 -
东东开车了(01背包回溯)
完整代码东东开车出去泡妞(在梦中),车内提供了 n 张CD唱片,已知东东开车的时间是 n 分钟,他该如何去选择唱片去消磨这无聊的时间呢假设:CD数量不超过20张没有一张CD唱片超过 N 分钟每张唱片只能听一次唱片的播放长度为整数N 也是整数我们需要找到最能消磨时间的唱片数量,并按使用顺序输出答案(必须是听完唱片,不能有唱片没听完却到了下车时间的情况发生)Input多组输入每行...原创 2020-04-29 22:08:04 · 336 阅读 · 0 评论 -
东东与 ATM(多重背包)
问题描述一家银行计划安装一台用于提取现金的机器。机器能够按要求的现金量发送适当的账单。机器使用正好N种不同的面额钞票,例如Dk,k=1,2,…,ND_k,k = 1,2,…,NDk,k=1,2,…,N,并且对于每种面额DkD_kDk,机器都有nkn_knk张钞票。例如,N=3,N = 3,N=3,n1=10,D1=100,n_1 = 10,D_1 = 100,n1=10,D1...原创 2020-04-29 21:57:09 · 376 阅读 · 0 评论 -
[leetcode] 4 寻找两个有序数组的中位数(二分+递归查找第K小数)(重要)
问题描述给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2...原创 2020-04-28 21:47:00 · 394 阅读 · 0 评论 -
[leetcode] 1608 面试题56-I 数组中数字出现的次数(分组异或)
问题描述一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例示例1输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例2输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2]限制2 <= nums <= 10...原创 2020-04-28 10:44:55 · 208 阅读 · 0 评论 -
[leetcode] 33 搜索旋转排序数组(二分)
问题描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例1输入: nums = [4,5,6,7,0,1,2], t...原创 2020-04-27 21:16:33 · 181 阅读 · 0 评论