自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (9)
  • 收藏
  • 关注

原创 18946 小美的送花线路

第二个问题,送花任务实际路程,因为送完树结构的每个分支都必须回到花店(树根),再去往下一个分支,因此选择最长的一个分支最后送达,才能使得路程最短。就是说大多数边都要走两次(有去有回),唯有距离起点最远的路径上的边只走一次,因此需要找到距离起点最远的结点。第一个问题,起点到所有结点距离和,从起点用搜索算法(dfs或bfs)计算出起点到所有点的距离,再求和即可。树的问题通常要用图的存储方式,并不需要转换成二叉树存储。

2024-04-20 09:40:03 149

原创 小红的水滴-阿里巴巴控股24秋招工程方向

题意分析:看到水滴四个方向扩散第一感觉和 OJ 19120 病毒扩散( ★ ★) 很相似,是否用BFS算法解决问题,但是如果模拟二维数组xi和yi范围比较大,因此不可行。鉴于数据规模较小,因此可否有一种贪心策略检查任意两点距离,找出某个值...........继续思考没有可证明的贪心思路。

2024-04-03 09:41:53 241

原创 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 382

原创 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 516

原创 小红构造数组-牛客周赛 Round 29(DFS方法)

剪枝很容易处理,我们知道DFS算法是按顺序选择元素的,例如 2 2 3 3 3 序列,如果我们选择第一个2作为第一个元素,肯定无法形成序列,那么递归回去时下一次递归会选取第二个2作为首元,这种行为显然是没必要的。虽然说数据范围显得很大,但是在长整型范围内,一个数字的素因子数量最多不超64,而如果是不相同的素因子,虽然没有计算过,但是如果是12个不同的素因子应该会超过数据范围了。所以果断采用找出所有素因子,再DFS做法。然而超时了.................题目很直白,方法就是暴力即可。

2024-01-28 17:00:22 389

原创 CF920 Eat the Chip (枚举算法)

情况2:列数差大于等于2,此时黑棋走棋趋势为加大这个列数差,白棋一定减少这个列数差。但是棋盘不是无限大,黑棋每逃离一次,白棋追赶一次,两个棋子行数差会减少2.以此为判定条件,问题可解。白棋子只能向下三个位置,黑棋子只能向上三个位置,谁先走到对方棋子位置就获胜。情况1:如果起始两个棋子列数差为1或者0,那么白棋先走可以始终保持在黑棋正上方,黑棋必败。分析:显然问题是有规律性的,如果白棋子在下而黑棋子在上,那么一定平局。以奇数行差距为例,后手玩家为避免被吃掉,走棋时一定要尽可能远离白棋,

2024-01-28 10:18:44 397

原创 小美的蛋糕切割(美团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 488

原创 小美的排列构造

显然如果1和2排一起,或者让n和n-1相邻都是错误的。最好的方式是让相邻两数的和接近(n+1)/2。比如:n 1 n-1 2............. (n+1)/2。贪心问题,得到所有n全排列中相邻两数的和,这些和差距要尽可能小。美团2024届秋招笔试第一场编程真题。

2023-11-19 09:35:31 357

原创 小美的树上染色

图中节点权值均为1,也就是任意相邻节点都可以满足染色条件,显然我们不能先将a和b染色,那样就只有2个点能被染色,而是应该先染色或 ,然后再 或,这样可以染4个点。如果能染色,哪么将g,f标记红色,同时就不可能染色了如果不能染色,未来还可以继续试探。分析:在树结构中,孩子和父节点是相邻节点,而父节点可能有多个孩子节点。实现方法:先处理最外层节点(叶子),外层处理完了,这些叶子就可以不要了,往内层推进。美团2024届秋招笔试第一场编程真题。

2023-11-19 09:22:53 693

原创 美团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 530

原创 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 248

原创 游游的选数乘积-2022年携程秋招第四批

游游的选数乘积-2022年携程秋招第四批

2023-07-20 09:38:22 301

原创 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 95

原创 codeforces 149-D. Bracket Coloring

后左右括号匹配的序列。现在要你对一个字符串每个字符涂一种颜色,使得同种颜色的字符序列拿出来以后是“好的字符串”。需要输出(1)最少涂几种颜色(2)输出每个字符对应的颜色编号。分析:观察样例,实际上颜色的数量最多就两种,因为只能“逆置”,所以字符串中左右括号数量必须相同才能完成 “涂色”+“好的字符串”。实现:如果序列中只有一种括号,括号匹配就不需要使用栈结构,只需一个变量统计左括号数量即可。好的字符串 有两种形式(1)左右括号匹配的序列(2)一套正序的好字符串 和 一套逆序的好字符串。

2023-05-26 22:42:53 271

原创 图的拓扑排序与关键路径

拓扑排序与关键路径是有向无环图上的应用。两种算法使用同一种动态规划的思想,因此关键路径的代码几乎和拓扑排序完全一样。

2023-05-20 10:58:48 890

原创 图的最短路径

更新全部之后选出最小的路径,此时为(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 721

原创 图的最小生成树

一个有 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 586

原创 力扣第 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 984

原创 完美对(哈希法)【2021】阿里巴巴编程题(2星)

如果两个物品是完美对,那么a1+b1==a2+b2,可得a1-a2== -(b1-b2)。也就是说如果一个物品k个值为3 9 11,其中前两个数字差为-6,那么完美对物品的前两个数字的差必须是6。采用链式哈希法对物品进行分组,组内两两比对即可。哈希法的效率取决于分组的数量,同时也与原始数据相关。因此如果某些数据无法通过时,可以考虑更换哈希函数或对哈希函数进行优化。根据题目要求,如果对任意两个物品属性进行比对计算,复杂度为。为满足时空要求,需要考虑只比对那些可能是完美对的物品。

2023-04-25 16:56:37 179

原创 二维表第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 79

原创 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 103

原创 小红的字符串切分-腾讯音乐娱乐集团2023暑期实习生招聘

分割成k份的最大权值。那么可以考虑将前i-1个字符分割成k-1份,而[i,n]为最后一份。小红拿到了一个字符串,她准备将该字符串切分成k个子串(将这k个子串按顺序拼在一起即可得到原串)。小红定义一个字符串的权值为:字符串长度乘以字符串的字母种类数量。分析:序列分割成k份,求极值。思路很简单,dp[n][k]表示将长度n字符串(你不需要给出一个方案,只需要返回最终这k个子串的最大权值即可。k为不超过字符串长度的正整数。逆向思维是算法领域常见的解决方法(上述的动态规划也是逆向思维)。

2023-04-19 09:16:39 807

原创 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 513 2

原创 牛客练习赛108 C梦迹

牛客竞赛 一个树状数组的应用题目

2023-02-18 19:32:47 212

原创 CF GLR24-C. Doremy‘s City Construction

CF竞赛Codeforces Global Round 24 第3题

2022-12-12 20:54:49 348

原创 期末小测第三题(2个题目)

二维动态规划问题

2022-12-02 21:46:25 284

原创 动态规划三:区间动态规划(19182+11078+洛谷P4170+力扣877)

区间动态规划介绍及几个例题

2022-11-05 13:02:31 945 3

原创 动态规划二:二维动态规划(18308+11077+19187+17089)

二维动态规划简要介绍

2022-10-23 11:40:45 1641

原创 力扣周赛314-矩阵中和能被 K 整除的路径(动态规划)

力扣周赛314-矩阵中和能被 K 整除的路径(动态规划)

2022-10-15 22:50:53 252

原创 动态规划一:线性动态规划(8596+17098+17099)

动态规划基础,线性动态规划

2022-10-15 10:15:29 1932

原创 公司食堂-美团2021校招笔试(线性数据结构的应用)

美团2021校招笔试-编程题(通用编程试题,第10场) 公司食堂

2022-10-05 10:32:50 605

原创 中兴软件类笔试试卷A-消灭怪物

对于第一组:我们首先用技能1,此时怪物血量剩余90,然后使用技能3,此时怪物剩余血量为85,最后用技能2,由于技能2在怪物血量小于89的时候双倍伤害,故此时怪物已经消灭,答案为3。对于第三组:我们首先用技能1,此时怪物血量剩余90,然后使用技能3,此时怪物剩余血量为85,最后用技能2,由于技能2在怪物血量小于84的时候双倍伤害,故此时怪物无法消灭,输出-1。对于第二组:我们首先用技能1,此时怪物血量剩余90,然后用技能2,由于技能2在怪物血量小于90的时候双倍伤害,故此时怪物已经消灭,答案为2。

2022-10-04 23:52:20 435

原创 连续子数组数量-腾讯音乐娱乐集团2023校园招聘技术类岗位

所谓的子数组就是区间,要求找到所有满足条件的区间。乘法末尾0的数量是比较常见的问题,本质是所有数字中因子2和因子5的数量。那么如果一个区间[i,j]满足乘积不少于x个0的要求,在这个区间基础上增加元素,一定也满足乘积不少于x个0的要求。解题方法:前缀和+双指针。前缀和用于统计区间内因子2和5的数量,双指针确定以j为右端点,且满足条件的最短区间。如果这个区间是 [i,j],那么[1,j],[2,j]........[i-1,j],一定也满足条件。前缀和和双指针算法复杂度均为O(n),此算法复杂度为O(n)。

2022-10-02 11:31:10 263

原创 好矩阵-腾讯音乐娱乐集团2023校园招聘技术类岗位编程题

定义一个矩阵为“好矩阵”,当且仅当该矩阵所有2*2的子矩阵数字和为偶数。

2022-10-02 11:03:56 519

原创 字符串操作-腾讯音乐娱乐集团2023校园招聘技术类

相对比较简单的贪心题目。消除重复字符有两种方法,将两个相同字符消去一个,或是更换为另一种字符。例如aaaa可以将aa变成一个b,再将剩下aa变成一个a。也可以三次消除操作得到一个a。显然变成一个未出现的字母效果更好。

2022-10-01 23:00:50 293

原创 嘤嘤的新平衡树-腾讯音乐娱乐集团2023校园招聘技术类岗位

腾讯面试真题

2022-10-01 22:27:44 381

原创 算法设计与分析-10349 数字滑雪

解题思路:要想知道a[i][j]的最长下滑长度,必须先知道a[i][[j]周边四个结点(上下左右)中比a[i][j]小的结点的下滑长度,利用这种依赖关系构造递归函数。为避免重复计算,递归函数第一语句先判断是否已经计算过结果。算法复杂度为平方阶。(代码有防伪标签,切勿复制粘贴)

2022-09-28 10:53:35 120

原创 算法设计与分析-递归与卡特兰数

卡特兰数的应用案例

2022-09-27 22:23:29 713 1

原创 算法设计与分析-17087 输出所有组合

组合是递归的基础用法之一。当然如果输出所有组合实际上是“指数型枚举”。本文给出一种递归输出组合的方法。同样用模拟的思路考虑问题,人是怎么思考得到全部组合的?例如当我们要选中一个长度3的组合时,先选中第一个字符A,然后在这个A字符之后选中第二个B,在B之后选中第三个字符C。当选中3个时,这次组合选取就结束了。

2022-09-20 19:02:45 288 1

原创 算法设计与分析-10302 整数的特殊划分

整数的特殊划分

2022-09-17 14:46:23 493

计算机考研408统考2009到2021年408真题(PDF格式含答案与解析)

计算机考研408统考 2009到2021年 408真题(PDF格式含答案与解析)

2023-05-28

介绍STL中数据结构及例题

介绍STL中数据结构及例题

2023-04-01

CCF全国信息学奥林匹克联赛(NOIP2017)复赛

CCF全国信息学奥林匹克联赛(NOIP2017)复赛普及组

2019-02-15

2014年南海区小学信息学辅导教师解题能力比赛初赛试题

2014年南海区小学信息学辅导教师解题能力比赛初赛试题 相对学生的题目简单很多

2019-02-11

2017年南海区青少年信息学奥林匹克竞赛试题(小学甲组)

2017年南海区青少年信息学奥林匹克竞赛试题(小学甲组)

2019-02-11

2016北京海淀区信息奥赛初中组

2016北京海淀区信息奥赛初中组2016北京海淀区信息奥赛初中组

2019-02-01

2016北京海淀区小学信息奥赛

2016北京海淀区小学信息奥赛

2019-02-01

2015北京海淀区小学信息奥赛

2015北京海淀区小学信息奥赛

2019-02-01

2015年南海区青少年信息学奥林匹克竞赛试题(小学甲组)

2015年南海区青少年信息学奥林匹克竞赛试题(小学甲组)

2019-02-01

2014年南海区青少年信息学奥林匹克竞赛试题(小学甲组)

2014年南海区青少年信息学奥林匹克竞赛试题(小学甲组)

2019-02-01

信息奥赛小学竞赛题目

信息奥赛小学竞赛题目。2013年南海区青少年信息学奥林匹克竞赛试题 (小学甲组) 注意事项: 1. 本次竞赛将使用评测系统进行自动评测,以源程序的测试结果为准。 2. 要利用文件严格按题目要求的格式(参考输入输出样例)进行输入输出,否则将被判为错误而不得分。 3. 所有文件要按试卷指定的文件名命名,程序中不要使用绝对路径,否则将无法测试而被判为0分。 4. 比赛结束前,要将最完善的源程序集中保存到以选手考号(字母用大写)加姓名命名的文件夹中(例如:XJ372陈才),该文件夹中不能再设子文件夹;同时还要在选手程序文件夹中建一个文本文件“程序清单.txt”,文件内容写清上交的程序文件名。 5. 现场编程3小时,每测试点时间限制1秒、内存限制128M,每题50分,总分300分。 6. 各题程序及数据文件名规定:

2018-09-20

空空如也

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

TA关注的人

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