- 博客(117)
- 资源 (9)
- 收藏
- 关注
原创 小苯的比赛上分-2024年淘天集团春招研发岗笔试
题目分析:每次在序列中选出最小值Min,将其从序列删除,将Min和bj的和插入序列,再输出最大值。(3)set,集合,能获得最小值和最大值,插入删除比较方便处理,不能有重复元素,如果存在重复元素需要处理用multiset。(2)priority_queue,本质是堆,因此只能获取最大值和最小值中的某一个。此处选multiset进行处理,具体看代码,如何通过函数获取最大最小值。(1)map,能获得最小值和最大值,特点是用下标法,能统计数量。数据结构的动态查找表,能获取表中最小值和最大值。
2025-03-17 15:43:47
210
原创 19065 有趣的数字
腾讯2017暑期实习生编程题小Q今天在上厕所时想到了这个问题:有n个数,两两组成二元组,相差最小的有多少对呢?相差最大呢?
2024-05-18 16:00:05
420
原创 小美的平衡矩阵-美团2024年春招第一场笔试
解释下构造前缀和数组语句:sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j];),至于矩阵中0和1的数量,使用二维前缀和数组求得。思路:暴力枚举所有的i*i矩阵,复杂度为O(
2024-05-01 11:12:49
333
原创 18946 小美的送花线路
第二个问题,送花任务实际路程,因为送完树结构的每个分支都必须回到花店(树根),再去往下一个分支,因此选择最长的一个分支最后送达,才能使得路程最短。就是说大多数边都要走两次(有去有回),唯有距离起点最远的路径上的边只走一次,因此需要找到距离起点最远的结点。第一个问题,起点到所有结点距离和,从起点用搜索算法(dfs或bfs)计算出起点到所有点的距离,再求和即可。树的问题通常要用图的存储方式,并不需要转换成二叉树存储。
2024-04-20 09:40:03
242
原创 小红的水滴-阿里巴巴控股24秋招工程方向
题意分析:看到水滴四个方向扩散第一感觉和 OJ 19120 病毒扩散( ★ ★) 很相似,是否用BFS算法解决问题,但是如果模拟二维数组xi和yi范围比较大,因此不可行。鉴于数据规模较小,因此可否有一种贪心策略检查任意两点距离,找出某个值...........继续思考没有可证明的贪心思路。
2024-04-03 09:41:53
581
原创 EF161 E. Increasing Subsequences
和基本二进制处理略有区别,比如序列[3,4,1,2]包含2个连续子序列,但所有子序列只有一个空集,答案是4+3=7个上升子序列,再看看这个[7,8,9,,1,2],共有3个连续子序列,因为后面的数字小,不可能和前面关联起来,所以子序列个数为[7,8,9]的8个,[3,4,5]的7个,[1,2]的3个。(1)如果X是一个奇数,先在序列尾部插入一个极小值,那么问题就变成了如果构造一个长度为X-1的子序列。例如序列[1,2],有4个上升子序列,分别是空序列[],[1],[2],[1,2]。
2024-01-30 10:46:55
458
原创 CF920 D. Very Different Array(排序+贪心)
现在b数组数量多过a数组,那么选取规则(贪心)就演变成b数组前面的k个数字和a数组后k个数字匹配。b数组后面n-k个数字和a数组前n-k个匹配。为求出这个合适的K值,需要枚举。下面代码先从k=n开始计算,当k为n-1时,原本abs(a1-bn)变为abs(a1-bm),依次类推。分析:如果b数组也是n个数字,那么a和b排序后,a最小匹配b最大(a1 bn),依次(a2 bn-1).。题意:a数组n个数字给定,b数组m个数字中选出n个,与a数组对应差的绝对值和最大。
2024-01-29 10:30:29
721
原创 小红构造数组-牛客周赛 Round 29(DFS方法)
剪枝很容易处理,我们知道DFS算法是按顺序选择元素的,例如 2 2 3 3 3 序列,如果我们选择第一个2作为第一个元素,肯定无法形成序列,那么递归回去时下一次递归会选取第二个2作为首元,这种行为显然是没必要的。虽然说数据范围显得很大,但是在长整型范围内,一个数字的素因子数量最多不超64,而如果是不相同的素因子,虽然没有计算过,但是如果是12个不同的素因子应该会超过数据范围了。所以果断采用找出所有素因子,再DFS做法。然而超时了.................题目很直白,方法就是暴力即可。
2024-01-28 17:00:22
512
原创 CF920 Eat the Chip (枚举算法)
情况2:列数差大于等于2,此时黑棋走棋趋势为加大这个列数差,白棋一定减少这个列数差。但是棋盘不是无限大,黑棋每逃离一次,白棋追赶一次,两个棋子行数差会减少2.以此为判定条件,问题可解。白棋子只能向下三个位置,黑棋子只能向上三个位置,谁先走到对方棋子位置就获胜。情况1:如果起始两个棋子列数差为1或者0,那么白棋先走可以始终保持在黑棋正上方,黑棋必败。分析:显然问题是有规律性的,如果白棋子在下而黑棋子在上,那么一定平局。以奇数行差距为例,后手玩家为避免被吃掉,走棋时一定要尽可能远离白棋,
2024-01-28 10:18:44
465
原创 小美的蛋糕切割(美团2024届秋招笔试第一场编程真题)
题目分析:切蛋糕问题切记可以横着切,也可以竖着切。本题目需要快速求得两个矩形的和,可以用二维前缀和数组解决。然后枚举一刀切的位置。解释下:sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j];
2024-01-10 11:05:35
648
原创 小美的排列构造
显然如果1和2排一起,或者让n和n-1相邻都是错误的。最好的方式是让相邻两数的和接近(n+1)/2。比如:n 1 n-1 2............. (n+1)/2。贪心问题,得到所有n全排列中相邻两数的和,这些和差距要尽可能小。美团2024届秋招笔试第一场编程真题。
2023-11-19 09:35:31
482
原创 小美的树上染色
图中节点权值均为1,也就是任意相邻节点都可以满足染色条件,显然我们不能先将a和b染色,那样就只有2个点能被染色,而是应该先染色或 ,然后再 或,这样可以染4个点。如果能染色,哪么将g,f标记红色,同时就不可能染色了如果不能染色,未来还可以继续试探。分析:在树结构中,孩子和父节点是相邻节点,而父节点可能有多个孩子节点。实现方法:先处理最外层节点(叶子),外层处理完了,这些叶子就可以不要了,往内层推进。美团2024届秋招笔试第一场编程真题。
2023-11-19 09:22:53
970
原创 美团2024届秋招笔试第二场编程真题-小美的数组构造
哪么按DP思路,先构造一个n-1的数组,总和是m-b[n]。=a[n]的方案数都是可行的。分析:暴力角度看,因为数组a和b总和一样,所以实际上是将总和m划分为n个数字,且每个数字都和a数组不一样的方案数。dp[i-1][[j-1]表示我们第i个元素选了1,所以还有j-1的总和给前i-1个元素。当然和a[i]相同的那个排除掉即可。哪么dp[i][j]=dp[i-1][[j-1]+dp[i1][j-2]+..........因此DP方程很容易得到,dp[i][j]表示构造一个i个数据元素,总和是j的数组。
2023-11-12 11:33:08
772
原创 Codeforces Round 893 (Div. 2)-B. The Walkway
规则如下,(1)走到m个点的任意一个点都必须吃饼干,(2)每次行走距离达到d时必须吃饼干,吃完饼干后行走距离归零。要求:(1)计算出主角吃饼干的总数(注意可以删除一个点再计算总数)(2)如果可以删除一个点,哪么可以删除的点的数量。初步分析:有两种情况,一是可以删除某个点使得次数少一个(需要统计这些点数量),另一种就是删除任何一个点总数都不变(注意这种情况可以看成删除点数量为m)。因为只能删除一个点,可以在计算总数过程中,顺路进行枚举,例如判断a[i]能否删除,计算下吃饼干次数t1+t2和t3的大小可知。
2023-08-17 09:46:36
320
原创 CF 570 E. Subsequences (easy version)
题目大意:给定一个字符串,让你构造一个包含K个字符串子序列的集合(可以是空串,无重复元素)。得到一个字符串子序列的方法是删除某些字符,例如abcd的子序列ac,ad等。尽可能删除少的字符,这样得到子序列代价小。按删除0个,1个,2个.....的次序依次得到子序列,如果不重复即可选取(选到k个结束)。可用set或map来判断是否重复,同时存储不重复的子序列。样例解析5 6 aaaaa ,子序列共有6个,空串=代价5,aaaaa=代价0,aaaa=代价1,aaa=代价2,aa=代价3,a=代价4,总和15。
2023-05-28 22:09:51
142
原创 codeforces 149-D. Bracket Coloring
后左右括号匹配的序列。现在要你对一个字符串每个字符涂一种颜色,使得同种颜色的字符序列拿出来以后是“好的字符串”。需要输出(1)最少涂几种颜色(2)输出每个字符对应的颜色编号。分析:观察样例,实际上颜色的数量最多就两种,因为只能“逆置”,所以字符串中左右括号数量必须相同才能完成 “涂色”+“好的字符串”。实现:如果序列中只有一种括号,括号匹配就不需要使用栈结构,只需一个变量统计左括号数量即可。好的字符串 有两种形式(1)左右括号匹配的序列(2)一套正序的好字符串 和 一套逆序的好字符串。
2023-05-26 22:42:53
436
原创 图的最短路径
更新全部之后选出最小的路径,此时为(1,3,2)长度7,此路径为结点1到结点2的最短路径。(1)先找到从1出发的邻接点有(2,3,4),最短的边是(1,3,长度5),此时可以断言结点1到结点3最短路径是5。证明也很容易,因为其他路径必须先经过(1,2,长度10)或者(1,4,长度9)那么其长度必然大于5。5+(3,5,长度1)要比原来的(1,5,长度无穷大)更小,进行数据的更新。5+(3,2,长度2)要比原来的(1,2,长度10)更小,进行数据的更新;以下图为例,求结点1出发,到其余各结点最短路径。
2023-05-18 15:54:23
824
原创 图的最小生成树
一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。此处我们先假定图中n个结点初始为n个集合(每个结点是一个集合),如果选中一条边(x,y),那么将x所属集合和y所属集合进行合并。Prim算法设最小生成树的结点集合U开始为空集,任选V中任意一个结点u放入集合U,此时在集合U和集合V-U中选择满足条件的边,(2)d数组用于辅助找到满足条件的最小的边,通过迭代处理的方式更新数组d。即边(x,y)的两个点x在集合U中,而y在集合V-U中。
2023-05-17 21:53:44
715
原创 力扣第 104 场双周赛 2681. 英雄的力量
容易想到先排序,排序后的序列可以取任意ai和aj,那么ai最小值,aj 最大值,i和j之间的元素可以任取,例如i=2,j=6,那么i和j之间有3个其他元素,这3个元素可以任取,因此共有2的3次幂共8种选取方法:(a2,a6) (a2,a3,a6) (a2,a4,a6) (a2,a5,a6)(a2,a3,a4,a6).......。可以发现规律为当ai为最大值时,其组成所有子序列的力量和为Y[i]*a[i]*a[i],而这个Y[i]可以由Y[i-1]*2+a[i-1]求得。求所有子序列的力量和。
2023-05-15 12:14:45
1092
原创 完美对(哈希法)【2021】阿里巴巴编程题(2星)
如果两个物品是完美对,那么a1+b1==a2+b2,可得a1-a2== -(b1-b2)。也就是说如果一个物品k个值为3 9 11,其中前两个数字差为-6,那么完美对物品的前两个数字的差必须是6。采用链式哈希法对物品进行分组,组内两两比对即可。哈希法的效率取决于分组的数量,同时也与原始数据相关。因此如果某些数据无法通过时,可以考虑更换哈希函数或对哈希函数进行优化。根据题目要求,如果对任意两个物品属性进行比对计算,复杂度为。为满足时空要求,需要考虑只比对那些可能是完美对的物品。
2023-04-25 16:56:37
280
原创 二维表第k大数-拼多多2020校招
分析:第k大不好处理,第k小有一定规律。第k大就是第n*m-k+1小。二分法找寻满足条件的最小值。mid条件就是至少有k个数小于等于mid。为什么是至少有k个(而不是正好k个?),因为二维表中有相同元素,例如。其中12既是第14小,也是第15小。如果求第14小时,我们计算得到小于等于12的数字有15个,而小于等于11的数字只有13个,所以12能满足条件。注意此题目必须开longlong。
2023-04-22 18:14:11
167
原创 Constructive Problem-Codeforces Round 866 (Div. 1)
题目大意:n个非负整数数组a,MEX(a)=m,m是数组中缺失的最小数字(从0开始),例如1 0 3 4缺失2,0 2 2 0 缺失1,3 4 5 6缺失0,0 1 2 3 缺失4。分析:找到缺失数字X很容易,找到之后进行修改,使得数组不缺少X,而是缺少X+1。例如 0 2 2 0 缺失1,那么只要把所有的2都改成1,缺失变成2满足提议。必须把X+1全部修改成X,因为是区间修改,所以修改后如样例3可能不满足要求。(3)特殊情况,什么时候绝对无法修改,如果n个数字缺失值为n,那么绝对无法修改得到n+1。
2023-04-22 11:42:23
151
原创 小红的字符串切分-腾讯音乐娱乐集团2023暑期实习生招聘
分割成k份的最大权值。那么可以考虑将前i-1个字符分割成k-1份,而[i,n]为最后一份。小红拿到了一个字符串,她准备将该字符串切分成k个子串(将这k个子串按顺序拼在一起即可得到原串)。小红定义一个字符串的权值为:字符串长度乘以字符串的字母种类数量。分析:序列分割成k份,求极值。思路很简单,dp[n][k]表示将长度n字符串(你不需要给出一个方案,只需要返回最终这k个子串的最大权值即可。k为不超过字符串长度的正整数。逆向思维是算法领域常见的解决方法(上述的动态规划也是逆向思维)。
2023-04-19 09:16:39
1115
原创 CF 863 (Div. 3) D. Umka and a Long Flight(递归)
题目大意:一个矩形长和宽分别是斐波那契序列f[n]和f[n+1],现在把这个矩形分割成n+1个正方形,尺寸均不相同(除了2个1的正方形),且和斐波那契数列一一对应。给你一个坐标,问你切割之后这个坐标能否正好对应尺寸为1的正方形。分析:上图为题目样例3的一种条件切割结果,发现左侧3*3也可以调换到右侧,而2*2和两个1*1也可以上下对换位置。从另一个角度看,如果把左侧3*3拿掉,剩下的就是。此时问题变成一个长宽为2*3的矩形,也就是问题(3,1,4)转换成了问题(2,1,3)
2023-04-05 11:34:56
710
2
原创 CF GLR24-C. Doremy‘s City Construction
CF竞赛Codeforces Global Round 24 第3题
2022-12-12 20:54:49
384
信息奥赛小学竞赛题目
2018-09-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人