- 博客(61)
- 收藏
- 关注
原创 第十四届蓝桥杯JavaB组省赛石子合并
此时要注意的每次合并都会让颜色变化。所以我们的突破口就是颜色,并且。,不过和以往不同的是多了只能相同颜色之间合并,并且要求出最少堆数和最小费用。不能保证是最终答案(因为最终答案是总费用最小)所以我们还需要对。,优先把堆数少的先合并,如果堆数一样,那就按照费用最低来合并。我们再来处理最小堆数,我们做完合并以后就可以判断一下,如果。最后得出的是相同颜色最小费用,如果有不能合并的话此时的。这两个区间颜色不一样那么就可以分别做区间。颜色不一样并不能转移。的话这时候就是裸的区间。
2024-07-17 22:53:14
1178
1
原创 牛客周赛 Round 51
线段树求最大子段和的模板题,无非就多要维护一个最小子段和,然后让区间最大子段和,还有区间最小子段和之间取个。二分完以后只要跑个dfs就行了,也就是如果遇到这个点数值比二分的大就不用走就行。小学数学题,把每一位加起来只要能被3整除就一定能被3整除。很经典的最大最小的问题,遇到这类问题直接二分答案。如果是偶数就永远都不可能是。
2024-07-14 22:35:38
1176
原创 力扣第406场周赛
思路是,不管是水平的切还是垂直的切,每次都先把最大的切了,然后再切小的,这个思路是看样例一的动画图猜出来的。例如这样水平切以后,竖着切每次都要多切一次,同理,如果竖着切了一次后,水平也要多切一次。每次切完以后会多出一块。如果是水平切完以后,竖着就要多切一块。比赛的时候没想那么多,直接上了个贪心,没想到AC了。然后我们先竖着切后水平切的花费是。然后我们先竖着切后水平切的花费是。如果有一个可以交换的就立马交换。要创建一个虚拟节点防止越界。
2024-07-14 16:41:36
781
原创 # Toyota Programming Contest 2024#7(AtCoder Beginner Contest 362)
零点定理:只要最小的小于等于0,最大的大于等于0就一定存在一个序列的和是0。然后我们只要把序列变成最小的,然后再看还差多少才能变成0即可。中的任何一个,所以我们可以这样写出转移方程。任意两个数都是等差数列,所以初始化。表示的是子序列中最后一位是。,类似于最长上升子序列。
2024-07-13 22:24:10
1062
原创 第十五届蓝桥杯JavaB组省赛题解
所以我们这只要讨论3人寝室,能先放6人桌就先放6人桌。剩下的2人寝和4人寝室,先放满6人桌,再放4人桌。步最多能走几个星球,所以我们可以贪心的想,我们对每个点都走最短路,那么走的星球数量肯定是最多的,所以这时候我们可以把。因为有3人寝室,而桌子有4和6人桌,如果让3人寝室上4人桌的话这样就会空出一个位置,而其他4人2人寝室都可以凑满。这题需要先分析看到边和点很小,询问很大,第一反应是需要预处理。的最短距离,类似于多源汇最短路,第一时间想到的是。分组所需要的试剂,答案只用取个。,检测这些患病的宠物也需要。
2024-06-24 22:43:23
1424
原创 第十四届蓝桥杯大赛软件赛国赛Java大学B组题解
区间最大值最小用线段树(也可以用单调队列)来做就行了。的位置在哪然后模拟运算即可。简单贪心每次用最大的乘以最小的就是答案。,根据整除的性质,我们可以分开来讨论。我写的是dfs只拿了3分,不太会做。思路是求区间最大值和最小值,然后求。整除也就是说有这一项答案有。为公差的等差数列,要让。是等差数列,而且是以。
2024-05-30 19:48:11
1094
原创 11场蓝桥杯双周赛题解
贪心:最大的就直接从大到小排个序输出,最小就从小到大输出,如果有前导。知识点:一个合数可以分解成若干个质因数。这题类似与leetcode的第一题两数之和,只要存下每个。分解成若干个质因数,如果某个质因数的个数是奇数就答案+1。,然后就判断枚举两个机器的出发点即可。
2024-05-18 23:48:22
726
原创 AtCoder Beginner Contest 353
先假设数组是$ A_1=3,A_2=14,A_3=123,A_4=1700,A_5=100000,A_6=60,A_7=546,A_8=7954$即可,这时候只需要排个序,然后用双指针维护只要找到满足两个元素相加小于。阅读理解题,如果当前位置不够一个团队那就开走,然后模拟即可。,所以这时候我们只要看任意两个数相加有多少个大于。用一下字典树然后记录一下每个前缀有多少个字符串。操作因为是任意的两个数相加再取。.发现任意的一个元素都会加。思维题,我们先观察一下。做一下前缀和和后缀和,在对。
2024-05-12 18:04:00
828
原创 第 10 场蓝桥杯小白入门赛题解
贪心,只要正数就用+号不够就用-号,负数用-号不够用+号即可。贪心,看数据范围都是正数,那肯定要取。总的水晶数不能超过埚的容量所以。暴力枚举每一个点是否有v然后取。然后就遍历一下找出最大的即可。枚举一下即可时间复杂度。,那蓝水晶个数肯定是。
2024-05-05 15:25:31
1023
原创 牛客小白月赛92题解
思路:模拟,因为每次所有的种子都要操作所有种子的等级都会变成。思路:先把矿道两边的矿石挖走,在把里面的矿石挖走即可。即可把所有情况枚举出来。思路:把题目给的公式。预处理,之后只要枚举。
2024-04-28 23:26:24
832
1
原创 第十四届蓝桥杯大赛软件赛省赛 Java 大学 B 组题解
先看思路,当数组总和为奇数的时候一定不存在R1和R2,因为R2是R1的补集,当总和为奇数的时候,R1和R2的奇偶性一定不同,因为奇数加偶数才是奇数。Java中有十进制转化为二进制,十六进制,八进制的方法,暴力枚举一下即可。如果两个矩形相交的话就将一个两个矩形补全成一个大矩形,然后减去两个多出来的小矩形即可。所以到40项以后的末尾9个阶乘的和一定是不变的,可以用手算,也可以写程序。思路:简单的贪心,每次取最大的两个然后免费其中两个中最小的/2就行。随着n越大,零也越多,当n为40的时候刚好有9个0。
2023-04-29 00:33:00
1836
原创 牛客小白月赛7(A-E)题解
双指针,按照猫猫的友善值和主人的期望来从小到大排序,同时维护一个指针j,表示猫猫能接受主人的最小友善值,从这k。类似于斐波那契数列,可以根据数据范围和给的样例,当a1=2,a2=2的时候是项数最多的时候。只要让白布的最大的边大于广告纸最大边,白布最小边大于广告纸最小边即可。这时候答案是5,意思是说最多5项,类似于斐波那契数列递推过去即可。f[i]=pow(f[i-2],f[i-1)即可。
2023-04-28 23:48:35
179
原创 第十四届蓝桥杯大赛软件赛省赛C/C++大学B组(持续更新)
他要求的是要是符合条件的最小的最大,最大的最小这样就有两根很明显的分界线,就可以用二分找到最小的最大,最大的最小。=c2或者s[i]==c2时候都可以从dp[i]=dp[i+1]转移过来。状态转移方程是当s[i]==c2时,dp[i]=dp[i+1]+1。定义dp[i]在长度为i到len的时候c2的个数。代码是全排列,枚举所有可能,然后一个个判断即可。然后根据题目含义说字串长度。K所以只要枚举左端点即可。
2023-04-13 22:14:43
372
原创 Google Kickstart2019 Round B Problem B 能量石
思路是贪心加01背包题目描述岩石怪物杜达生活在魔法森林中,他在午餐时收集了 N 块能量石准备开吃。由于他的嘴很小,所以一次只能吃一块能量石。能量石很硬,吃完需要花不少时间。吃完第 i 块能量石需要花费的时间为 Si 秒。杜达靠吃能量石来获取能量。不同的能量石包含的能量可能不同。此外,能量石会随着时间流逝逐渐失去能量。第 i 块能量石最初包含 Ei 单位的能量,并且每秒将失去 Li 单位的能量。当杜达开始吃一块能量石时,他就会立即获得该能量石所含的全部能量(无论实际吃
2022-05-06 16:06:12
301
原创 leetcode883. 三维形体投影面积
在n x n的网格grid中,我们放置了一些与 x,y,z 三轴对齐的1 x 1 x 1立方体。每个值v = grid[i][j]表示 v个正方体叠放在单元格(i, j)上。现在,我们查看这些立方体在 xy、yz和 zx平面上的投影。投影就像影子,将 三维 形体映射到一个 二维 平面上。从顶部、前面和侧面看立方体时,我们会看到“影子”。返回 所有三个投影的总面积 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/pro...
2022-04-26 15:06:13
299
原创 NOIP2004提高组 合唱队形
N 位同学站成一排,音乐老师要请其中的 (N−K) 位同学出列,使得剩下的 K 位同学排成合唱队形。 合唱队形是指这样的一种队形:设 K 位同学从左到右依次编号为 1,2…,K,他们的身高分别为 T1,T2,…,TK, 则他们的身高满足 T1<…<Ti>Ti+1>…>TK(1≤i≤K)。 你的任务是,已知所有 N 位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。输入格式输入的第一行是一个整数 N,表示同学的总数。第二.
2022-04-14 12:02:41
333
原创 染色法判定二分图
首先二分图的定义是在集合内是没有线相连接,只有在集合与集合之间才有,所以在一个图中相连接的两个结点必定属于不同的两个集合,所以将每个结点都染色两种不同的颜色,如果发现冲突那就不是二分图。染色法利用了图的DFS 每个结点都深度搜索查看是否有冲突给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。输入格式第一行包含两个整数 n 和 m。接下来 m 行,每行包含两个整数 u 和 v,表示点 u 和点 v 之间存在一条边。输出格式如果给定图是二
2022-04-08 16:19:12
156
原创 leetcode122. 买卖股票的最佳时机 II
给定一个数组 prices ,其中prices[i] 表示股票第 i 天的价格。在每一天,你可能会决定购买和/或出售股票。你在任何时候最多只能持有 一股 股票。你也可以购买它,然后在 同一天 出售。返回 你能获得的 最大 利润。示例 1:输入: prices = [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(...
2022-04-08 14:49:49
310
原创 prim最小生成树
给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出 impossible。给定一张边带权的无向图 G=(V,E),其中 V 表示图中点的集合,E 表示图中边的集合,n=|V|,m=|E|。由 V 中的全部 n 个顶点和 E 中 n−1 条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G 的最小生成树。输入格式第一行包含两个整数 n 和 m。接下来 m 行,每行包.
2022-04-06 21:29:40
106
原创 844. 走迷宫
给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。输入格式第一行包含两个整数 n 和 m。接下来 n 行,每行包含 m 个整数(0 或 1),表示完整的二维数组迷.
2022-04-06 16:58:06
121
原创 Floyd求最短路
给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,边权可能为负数。再给定 k 个询问,每个询问包含两个整数 x 和 y,表示查询从点 x 到点 y 的最短距离,如果路径不存在,则输出 impossible。数据保证图中不存在负权回路。输入格式第一行包含三个整数 n,m,k。接下来 m 行,每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。接下来 k 行,每行包含两个整数 x,y,表示询问点 x 到点 y 的最短距离。输出格式共 k .
2022-04-06 16:22:29
103
原创 spfa求最短路
给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 impossible。数据保证不存在负权回路。输入格式第一行包含整数 n 和 m。接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。输出格式输出一个整数,表示 1 号点到 n 号点的最短距离。如果路径不存在,则输出 impossible。数据范围1≤n,m≤10.
2022-04-05 20:00:36
93
原创 leetcode206. 反转链表
206. 反转链表方法一:递归struct ListNode* reverseList(struct ListNode* head){if(!head||head->next==NULL)return head;struct ListNode*p=reverseList(head->next);head->next->next=head;head->next = NULL;return p;}方法二快慢指针struct ListNode* r.
2022-04-05 15:49:01
68
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人