07 2024 档案
摘要://https://acm.creative3605.com/contest/156/problem/B 思路:直接计算第一轮结束后的位置和方向,再通过第一轮推接下来t-1伦,需要注意方向,例如对于第一轮机器人从0,0面朝上,最终走到1,3,此时我面朝又,那对于第二轮的机器人y的负半轴是上一轮的1,
阅读全文
摘要:题目:给定n个破坏轮,告诉坐标和爆炸半径,只要其他破坏轮在当前爆炸半径内就继续引爆,问最多能引爆几个 思路,首先暴力查询一遍每个邻接表能引爆的tnt,用邻接表存储,再对每个炸弹进行深搜,每对一个炸弹开始搜索时都要重新赋值,以防止被之前搜索结果影响,就是一直找寻当前炸弹最多能引爆到第几个(具体在代码)
阅读全文
摘要:题目大意为,给你一颗树,告诉上面的节点,分为黑和白,求有多少子树上面的黑和白节点是相等的; 思路:首先通过邻接表将树记录下来,再从跟节点开始,通过递归访问每个节点,同时记录当前节点是否来过,如果没来过,则不断访问他的子节点,当找到底之后,判断从根节点到这个节点的黑白节点数量,看是不是平衡树 点击查看
阅读全文
摘要:通过一遍单调栈找出i下标数字左右两边第一个比它大的数字 在将数放入栈的时候,将她与栈顶比较,因为栈是先进后出,所以当栈顶的数比她小的时候,就压出栈顶,并且对于栈顶来说,这个数就是她左边第一个比它大的数,当这个数遇到比它大的数时,这个比它大的数就是它右边第一个大于它的数,最后再将栈中遗留的数重复上面判
阅读全文
摘要:题目:给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 思路:通过双端队列,因为只看得到k个数字,所以先在队列放入k个数字,并且每次放入时都要将他与队列里所拥有
阅读全文
摘要:要将一个字符串去掉重复字符并使最后字典序最小, 首先开两个map一个记录最小出现的位置,第二个记录当前是否被压入单调栈中,当她不再的时候,如果她比当前栈顶元素小,并且栈顶元素还会出现,则把当前元素压进去,将栈顶弹出,不然则直接跳过判断下一个 点击查看代码 class Solution { publi
阅读全文
摘要:这题目标是通过移动拿到所有钥匙,上锁的房间需要对应的钥匙,思路是通过|和&二进制判断是否有对应钥匙,与普通不同的是,不同点是当我重复进入一个房间时,不能单纯通过有无来过来判断是否continue,而是要通过进入这个房间时钥匙的状况来判断 点击查看代码 struct node { int x, y,
阅读全文
摘要:这题题意是根据被改变的字典序给出的字符串求出字典序。比较字典序大小就是看两个字符串第一个不同的字符或是在前面完全相同的情况下比较长度。所以当前面的条件都不满足时就是题目的impossible。这题主要就是找出相邻两个字符串中第一个不相等字符,由此我们就得出这两个字符串的字典序排列,在进行链式前向星存
阅读全文
摘要:这题是每次删一次点并输出操作前的值,将其转化成删掉所有点然后依次存入一个点,再进行佛罗里达,最后将值倒过来输出就好 点击查看代码 /* 台州第一深情 */ #include <bits/stdc++.h> using namespace std; using i64 = long; using ll
阅读全文
摘要:通过便利每两个点之间的传送门,再便利一次其他点与传送点的路长度,没路的情况是最大值不会考虑,有路就取经过传送门和原本最短路的最小值 点击查看代码 /* 台州第一深情 */ #include <bits/stdc++.h> using namespace std; using i64 = long;
阅读全文