侧边栏壁纸
博主头像
小白博主等级

just do it!

  • 累计撰写 60 篇文章
  • 累计创建 77 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

算法题集(一)

小白
2020-08-29 / 0 评论 / 0 点赞 / 179 阅读 / 1,682 字

树木规划——超级玛丽在线编程大赛初赛第1场

描述

在一条直的马路上,有 n 棵树,每棵树有一个坐标,代表它们距离马路起点的距离。 如果每相邻的两棵树之间的间隔不小于 d,那么我们认为这些树是美观的。 请计算出最少移除多少棵树,可以让这些树变得美观。

树木的棵树为 n,1≤n≤105。 树木的坐标用 trees 表示,0≤treesi≤109。 最小美观间隔为 d,1≤d≤109。 保证输入的坐标是排好序的,且两两不相同。

说明

样例中,将位置 2 和 6 的树木移走,剩下 [1,3,5],它们是美观的。

示例

输入:
[1,2,3,5,6]
2
输出:
2

正三角形拼接——超级玛丽在线编程大赛初赛第1场

描述

给出 n 根木棍,每次切割可以将 1 根木棍切成 2 段。 请计算出最少切割几次,可以从所有木棍中选出 3 根,组成一个 正三角形 。

一开始的木棍根数为 n,3≤n≤1000。 所有木棍的长度为一个整型数组 lengths,1≤lengthi≤109。 切割必须要将木棍分成 2 根整数长度的木棍,而且总长度要和原木棍相等。

说明

可以从长为 7 的木棍中,切出 2 根长为 3 的木棍,那么木棍的长度应该为 [2,3,1,3,3,5],可以拼出边长为 3 的正三角形。

示例

输入:
[2,3,7,5]
输出:
2

大楼间穿梭——超级玛丽在线编程大赛初赛第1场

描述

蜘蛛侠在大楼间穿梭。大楼的高度可以看作是一个从左到右排列的数组。 现在蜘蛛侠站在第一栋大楼上,他想跳到最后一栋上。 蜘蛛侠的视野为 k,他可以花费 x 点体力,用蛛丝移动到右侧 k 幢建筑中第一栋比当前位置高的大楼。 或者蜘蛛侠可以花费 y 点体力,跳跃到右侧接下来两栋大楼其中一栋。 请计算蜘蛛侠最少花费多少体力,到达最后一栋上。

大楼的高度为数组 heights,一共有 n 栋大楼,2≤n≤105, 1≤heightsi≤109. 蜘蛛侠的视野为 k,1≤k≤n。 两种行动的体力花费满足 1≤x,y≤109

说明

可以从长为 7 的木棍中,切出 2 根长为 3 的木棍,那么木棍的长度应该为 [2,3,1,3,3,5],可以拼出边长为 3 的正三角形。

示例

输入:
[2,3,7,5]
输出:
2

对称前后缀——超级玛丽在线编程大赛初赛第1场

描述

给定一个字符串 s。 我们令一个字符串的权值为一个字符串的最长对称前后缀长度。 请求出 s 的所有子串的权值的总和。 例如,”abcxyzcba” 的最长对称前后缀的长度为 3,因为 “abc” 和 “cba” 对称。

字符串的长度为 n,1≤n≤3∗103。 字符串均由小写英文字符组成。

说明

样例中,单个字符的子串的权值为 1,它们的和为 7。 另外的权值为: “bacb” -> 1 “bacbdab” -> 2 “bdab” -> 1 “acbda” -> 1 所以权值和为 12。

示例

输入:
"bacbdab"
输出:
12

五字回文——超级玛丽在线编程大赛初赛第2场

描述

小栖最近很喜欢回文串,由于小栖的幸运数字是5,他想知道形似“abcba”的回文串在他给定的字符串中的数量

s.length<=106
字符串s只包含小写字母

说明

样例中,单个字符的子串的权值为 1,它们的和为 7。 另外的权值为: “bacb” -> 1 “bacbdab” -> 2 “bdab” -> 1 “acbda” -> 1 所以权值和为 12。

示例

样例 1
输入:s = "abcba"
输出:1
样例 2
输入:s = "abcbabcccb"
输出:2
解释:形似”ababa“的字符串有”abcba“和”cbabc“

区间异或——超级玛丽在线编程大赛初赛第2场

描述

有一个数组num,现在定义区间对的和等于:左区间的最大值加右区间的最小值 由于小栖特别能突发奇想,他突然想知道多个区间对和的异或和是多少

  • 4<=len(num)<=50000
  • 0<=num[i]<=100000000
  • 1<=len(ask)<=100000
  • len(ask[0])=4,分别表示 l1,r1,l2,r2
  • num中视作下标从1开始,而不是0
  • 左右区间可能重合

说明

NA

示例

输入: num = [1,2,3,4,5] ask = [[1,2,3,4],[1,2,4,5]]
输出: 3
说明: [1,2,3,4]区间异或对和为5,[1,2,4,5]区间异或对和为6,5 xor 6 = 3

三角魔法——超级玛丽在线编程大赛初赛第2场

描述

小栖必须在一个三角形中才能施展魔法,现在他知道自己的坐标和三个点的坐标,他想知道他能否施展魔法

  • −109<=x,y<=109
  • 点在边上也属于三角形内

说明

NA

示例

样例 1
输入: triangle = [[0,0],[2,0],[1,2]] point= [1,1]
输出: "Yes"
样例 2
输入: triangle = [[0,0],[2,0],[1,1]] point= [2,1]
输出: "No"

小栖的金字塔——超级玛丽在线编程大赛初赛第2场

描述

小栖有一个金字塔,每一层都有编号.
081808c4-e672-11ea-ae41-0242ac1c0002
可以在不同点间移动,假设小栖现在在(x1,y1),他能够移动到的下一个点(x2,y2)满足x2>=x1&&y2>=y1x2>=x1&&y2>=y1 现在小栖呆在(k,k)处,由于我们不能确定小栖现在在哪儿,所以你需要求出所有点(k,k)到达(n,n)的方案数的和。

  • 1<=k<=n<=107
  • 由于方案数很大,请对方案数取模1e9+7

说明

NA

示例

样例 1
输入:n=3,k=[1,2,3]
输出:9
0

评论区