自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Codeforces - Incinerate

一开始有n个怪兽,每个怪兽有一个血量和攻击力,现在有一个人来攻击这些怪兽,这个人的初始攻击力是k。每轮战斗后怪兽的血量都会降低人的现有攻击力,但是人的攻击力也会降低,降低值就是存活的怪兽中的最低攻击力。, 再配合pair<int,int>,成功存储怪兽的攻击力和血量,并且将攻击力存入第一个值后,将按第一个值升序排列。这道题,本来想使用map,key值存怪兽最低的攻击力,value值存怪兽的血量。但是map 不允许出现重复的 key值,一直出错。为了实现能够存储重复的key值,可以使用。

2024-02-15 16:27:51 387

原创 Codeforces-2-Letter Strings(题解)

只有一个字符不同,可以每次加上第一个字符为首形成的字符串和第二个字符为尾在此之前出现的次数,最后注意去重,因为只能有一个字符,如果输入相同的字符串,就会有重复。去重也很简单,只用减去 这个字符在此之前出现的次数的2倍,为什么是2倍,因为 加上了第一个字符为首的字符串个数 又 加上了第二个字符为尾的字符串个数。多样例,给你n对字符串,每对字符串只有两个字符,判断只有一个字符不相同的字符串对数是多少。

2024-02-05 23:18:11 470

原创 Codeforces-Mainak and Interesting Sequence(题解)

如果n大于m显然是不成立的,因为所有的ai>=1,如过n大于m ,数组和一定大于 m。

2024-02-05 23:17:01 621

原创 Codeforces-Game with Multiset

我们可以贪心处理,从大到小遍历如果 x 大于等于 2^i次方,如果 i 存在则可以将x缩小,x最多可以缩小 i 的实际数量的2次方。但是 i 的数量可能为0,所以特殊处理一下x -= min(x / (1 << i),s[i]) * (1 << i);给你n对数字,每对数字有两个。如果第一个数字为1,代表add操作,及将2^x次方存到一个地方, 如果数字为2,则输出刚才存入的数的和是否能为x,如果可以则输出“YES”,否则输出“NO"add x,其中x的范围为0-29,则数据范围为[2^0,2^29]。

2024-01-27 23:59:11 288

原创 Codeforces-Smilo and Monsters

攻击次数最少,就要使得每次攻击的利益最大化。即每次攒起来的连击数都要击杀最多血量的怪兽。所以可以先对输入的怪兽进行排序,从前累计计数器,若能刚好杀死最多血量的,则直接杀死;若大于最大血量的,为了利益最大化,只计数到刚好杀死这个怪物即可。最后要对最后一只怪物特殊处理一下节约时间。n个成群的怪兽,每群分别有 xi个怪兽,有两种攻击方式:1.每次攻击一个群中的一个怪兽一滴血,然后连击器加1;2. 使用连击器攻击一次造成连击器的伤害,然后连击器重置为0;问最少杀完所有怪物的攻击次数。

2024-01-27 23:57:50 279

原创 蓝桥杯-聪明的交换策略

以1全部左移为例子,对于a[i]如果a[i]=0那么就不需要移动,a[i]为1就可以移动。而从a[i]移动到最前面的a[0],不难计算出需要移动i次,如果a[i]前面有m个1的时候,则a[i]此时应该移动到m+1的位置,因此移动的长度为 i - (m+1) + 1 ,+1是因为下标从0开始,所以每次移动后都需要记录a[i]前面1的个数,如此便可求出全部左移需要的次数。然后继续记录 1 的个数。小蓝的任务是通过相邻盒子之间的交换,使得最多只有一对相邻盒子的颜色不同,请你帮忙计算最少的交换次数。

2024-01-27 23:56:55 446

原创 蓝桥杯-召唤神坤

依次给你 n 个数,求出(a[i] + a[k]) / a[j] 的最大值,注意要保证i < j < k;使用 list 存储,后缀最大值,使用 pre 存储前缀最大值。使用数组 a 保持 n 个数,方便后续的遍历求解。然后遍历求解,就能求出最大值。

2024-01-27 23:56:25 89

原创 计蒜客-放苹果(dfs)

int t,m,n;int cnt;// 遍历到最后一个盘子的时候cnt++;return;// 去重使用 当前苹果数量 / 盘子数量 算出平均每个盘子放的水果// 只要当前盘子不超过这个平均值就能去重++i)cin >> t;// t 组 样例cnt = 0;// 初始化计数器dfs(0,m,n);return 0;

2024-01-22 21:10:24 811

原创 四种方法求组合数

由于需要用到二重循环,因此此方法适用的范围是: n,m < = 10^4 左右时间复杂度:O(n^2)

2023-08-22 22:49:06 800

原创 扩展欧几里得 及 逆元

在朴素的求gcd(a,b)的过程中使用递归算法,达到递归边界时 b′=0, a′=gcd(a,b). 可知 a′⋅1 + b′⋅0 = gcd(a,b),但 a′,b′ 已不是最开始的 a,b. 因此要想求出 x,y, 就要回到最开始的 a,b. 由于是递归算法,所以我们在回溯时考虑如何回到上一层.

2023-08-18 22:36:51 584

原创 背包问题总结

有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i]。,求解将哪些物品装入背包里物品价值总和最大。有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i]。,求解将哪些物品装入背包里物品价值总和最大。假设背包最大重量为4。问背包能背的物品最大价值是多少?

2023-08-01 22:33:09 159

原创 洛谷:P2036 P2392 P1928 P1498

Perket 是一种流行的美食。为了做好 Perket,厨师必须谨慎选择食材,以在保持传统风味的同时尽可能获得最全面的味道。你有 n 种可支配的配料。对于每一种配料,我们知道它们各自的酸度 s 和苦度 b。当我们添加配料时,总的酸度为每一种配料的酸度总乘积;总的苦度为每一种配料的苦度的总和。众所周知,美食应该做到口感适中,所以我们希望选取配料,以使得酸度和苦度的绝对差最小。另外,我们必须添加至少一种配料,因为没有任何食物以水为配料的。

2023-07-24 15:58:41 216

原创 洛谷:P1036 P1032 P1021

已知n 个整数 1,2,⋯ ,x1​,x2​,⋯,xn​,以及 11 个整数 k。从 n 个整数中任选k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,44 个整数分别为 3,7,12,193,7,12,19 时,可得全部的组合与它们的和为:现在,要求你计算出和为素数共有多少种。例如上例,只有一种的和为素数:3+7+19=293+7+19=29。

2023-07-21 16:24:58 607 1

原创 洛谷: P1025 P1019

将整数 n 分成 k 份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,51,1,5;1,5,11,5,1;问有多少种不同的分法。

2023-07-20 16:12:45 319

原创 2023河南萌新联赛第(二)场:河南工业大学

然后根据前缀和数组 sum,计算第 x 格和最远能流到的那一格之间的小麦数量。在第4格放出水流后,水流会流向第3格,由于第3格高度比第4格低,所以水流继续向左流向第2格,因为平地水流只能流2格,所以到达第2格后水流停止,收获的小麦数量为1 + 4 + 5 = 10。在游戏MC(我的世界)中,如果小麦碰到水流就会掉落,但是mc中的水不能无限流动,在同一高度一桶水往一个方向流最多可以流动8格(算上本身一格)。最后,在一个循环中,依次读入每个询问的位置 x,并输出该位置的小麦前缀和减去最左侧位置的小麦前缀和。

2023-07-19 21:02:45 257

原创 广度优先搜索 leetcode: 323 107 剑指 Offer 32

在图中,由于 图中存在环,和深度优先遍历一样,广度优先遍历也需要在遍历的时候记录已经遍历过的结点。如果很难理解这样做的必要性,建议大家在代码中打印出队列中的元素进行调试:在图中,如果入队的时候不马上标记为「已访问」,相同的结点会重复入队,这是不对的。在 无权图 中,由于广度优先遍历本身的特点,假设源点为 source,只有在遍历到 所有 距离源点 source 的距离为 d 的所有结点以后,才能遍历到所有 距离源点 source 的距离为 d + 1 的所有结点。最终返回计数器的值就是最终的结果。

2023-07-18 21:39:40 144 1

原创 Jisuanke:1526 3473 1271

给你两个集合,要求 {A} , {B}。注:同一个集合中不会有两个相同的元素。

2023-07-15 21:04:56 115 1

原创 Leetcode:506 703 215 264 23

在默认的优先队列中,优先级最高的先出队。默认的int类型的优先队列中先出队的为队列中较大的数。当访问元素时,具有最高级优先级的元素先被访问。即优先队列具有最高级先出的行为特征,所以可以在存储的时候就进行排序。最后用sort对pair排序,默认对pair第一个元素排序,也就是score。所以,成绩可以排序,但是序号不变,输出的时候就满足题意。名次为 [1st, 2nd, 3rd, 4th, 5th]。名次为 [1st, 5th, 3rd, 2nd, 4th]。的运动员得分最高,名次第。

2023-07-14 15:15:47 70 1

原创 Leetcode: 205 1309 200

每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。首先看到,字符与序号有对应关系,可以想到哈希表。将序号作为key,将字母作为value进行映射,然后遍历字符串进行输出。所以可以通过dfs,通过遍历连接的岛屿,并将他们变为河流,最后统计一下进入dfs的次数即可。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。(水)组成的的二维网格,请你计算网格中岛屿的数量。

2023-07-12 20:42:35 67 1

原创 NOWCODE:15029 14326 14666

时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K。

2023-07-11 16:01:20 103

原创 Leetcode:239 933 622 641 50

239. 滑动窗口最大值给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。滑动窗口的位置 最大值[1]队列里面的数递减的顺序。2.如果前面的数小于新的数,就弹出,再放入新数。写一个类来计算特定时间范围内最近的请求。请你实现tt3000每次对ping的调用都使用比之前更大的t值。

2023-07-10 17:14:06 92 1

原创 leetcode:2401,859,167, 581,42

2401. 最长优雅子数组给你一个由整数组成的数组nums。如果nums的子数组中位于位置的每对元素按位运算的结果等于0,则称该子数组为子数组。返回的优雅子数组的长度。是数组中的一个部分。长度为1的子数组始终视作优雅子数组。3最长的优雅子数组是 [3,8,48]。子数组满足题目条件:可以证明不存在更长的优雅子数组,所以返回 3。1最长的优雅子数组长度为 1 ,任何长度为 1 的子数组都满足题目条件。通过次数10.4K提交次数20.9K通过率49.6%

2023-07-08 23:11:38 79

原创 单调队列及力扣例题

对于单调递增队列,准备入队的元素,从队尾开始把队列中的元素逐个与这个元素比较,将大于或者相等的元素逐个删除,直到遇到一个比该元素小或者队列为空为止,然后把这个元素插入到队尾。如果进队元素大于等于队尾元素,则将队尾元素从队尾出队,直至进队元素小于队尾元素或队列空为止。单调队列:队列中元素之间的关系具有单调性,而且队首和队尾都可以进行出队操作,只有队尾可以进行入队操作。对于单调递减队列也是同样道理,只不过从队尾删除的是比这个元素小或者与这个元素相等的元素。的滑动窗口从数组的最左侧移动到数组的最右侧。

2023-07-07 23:50:02 110 1

原创 Leetcode:217. 存在重复元素

1] 线性探测法: 简单来说,若发生冲突则顺序查看表中下一个单元,当查找到表尾地址时,再从表头地址开始查找。直到找到一个空闲地址或查边全表。当具有较多同义词时,会发生聚集”或堆积现象,[2] 平方探索法: 查找跳跃长度为线性整数的平方,即0 、 12 、(-1)2 、 22 、(-2)2 、33 、(-3)2…该方法可以使表中存的元素相对均匀的分布,避免了堆积现象。开放寻址法:F = (H(key) + d) % m 式中d为增序序列,m为散列表表长。如果数组中每个元素互不相同,返回。

2023-07-07 01:56:23 80 1

原创 力扣: 496. 下一个更大元素 【单调栈】

496. 下一个更大元素 Inums1中数字x的是指x在nums2中对应位置的比x大的元素。给你两个的数组nums1和nums2,下标从开始计数,其中nums1是nums2的子集。对于每个,找出满足的下标j,并且在nums2确定nums2[j]的。如果不存在下一个更大元素,那么本次查询的答案是-1。返回一个长度为的数组ans作为答案,满足ans[i]是如上所述的。[-1,3,-1]nums1 中每个值的下一个更大元素如下所述:- 4 ,用加粗斜体标识,nums2 = [1,3,,2]。

2023-07-05 17:31:34 93 1

原创 二叉树的三种非递归遍历

【代码】二叉树的三种非递归遍历。

2023-07-05 14:02:43 71 1

原创 力扣:94. 二叉树的中序遍历

给定一个二叉树的根节点root,返回它的遍历。

2023-07-04 22:36:52 49

原创 力扣:590. N 叉树的后序遍历

590. N 叉树的后序遍历给定一个 n 叉树的根节点root,返回其节点值的。n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值null分隔(请参见示例)。

2023-07-04 22:29:56 38

原创 力扣:589. N 叉树的前序遍历

n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值。给定一个 n 叉树的根节点。589. N 叉树的前序遍历。分隔(请参见示例)。

2023-07-04 22:16:26 44

原创 力扣:20

4.最后栈中还有数据,证明没有全部抵消,括号无效。2. 每个右括号都有一个对应的相同类型的左括号。3.可以使用栈来看数据是否对应,比如,解题思路: 1.字符串的长度必须为偶数才能一一对应。

2023-07-04 19:46:16 42

原创 时间复杂度

时间复杂度

2023-03-11 16:59:17 335 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除