![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
每日一题
....
追寻远方的人
你的职责是平整土地,而非焦虑时光。
展开
-
3555. 二叉树
给定一个n个结点(编号1∼n)构成的二叉树,其根结点为1号点。进行m次询问,每次询问两个结点之间的最短路径长度。树中所有边长均为1。原创 2022-07-29 08:16:29 · 265 阅读 · 0 评论 -
3588. 排列与二进制
在组合数学中,我们学过排列数。从n个不同元素中取出m(m原创 2022-07-27 09:47:16 · 239 阅读 · 0 评论 -
3559. 围圈报数
N个人围成一圈顺序编号,从1号开始按1、2、3顺序报数,报3者退出圈外,其余的人再从1、2、3开始报数,报3的人再退出圈外,依次类推。请按退出顺序输出每个退出人的原序号。要求使用环行链表编程。...原创 2022-07-27 09:46:07 · 728 阅读 · 0 评论 -
4519. 正方形数组的数目
给定一个非负整数数组A,如果该数组每对相邻元素之和是一个完全平方数,则称这一数组为正方形数组。返回A的正方形排列的数目。两个排列A1和A2不同的充要条件是存在某个索引i,使得A1[i]≠A2[i]。...原创 2022-07-27 09:45:14 · 116 阅读 · 0 评论 -
4518. 最低票价
在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为days的数组给出。每一项是一个从1到365的整数。火车票有三种不同的销售方式一张为期一天的通行证售价为costs[0]美元;一张为期七天的通行证售价为costs[1]美元;一张为期三十天的通行证售价为costs[2]美元。通行证允许数天无限制的旅行。例如,如果我们在第2天获得一张为期7天的通行证,那么我们可以连着旅行7天。...原创 2022-07-27 09:43:46 · 144 阅读 · 0 评论 -
3540. 二叉搜索树
输入一系列整数,利用所给数据建立一个二叉搜索树,并输出其前序、中序和后序遍历序列。原创 2022-07-27 09:41:54 · 155 阅读 · 0 评论 -
3715. 最少交换次数
给定一个1∼N的随机排列,要求一次只能交换相邻两个数,那么最少需要交换多少次才可以使数列按照从小到大排列呢?请你求出一个待排序序列的最少交换次数和对应的逆序数列。逆序数列给定n个数1,2,…,n的一个排列a1a2…an,令bi是数i在此排列中的逆序数,换句话说,bi等于该排列中先于i又大于i的那些数的个数。数列b1b2…bn称为排列a1a2…an的逆序数列(inversionsequence)。...原创 2022-07-27 09:41:15 · 318 阅读 · 0 评论 -
3564. 日期类
编写一个日期类,要求按xxxx-xx-xx的格式输出日期,实现加一天的操作。原创 2022-07-27 09:40:09 · 75 阅读 · 0 评论 -
3511. 倒水问题
有三个杯子,容量分别为A,B,C。初始时,C杯装满了水,而A,B杯都是空的。现在在保证不会有漏水的情况下进行若干次如下操作将一个杯子x中的水倒到另一个杯子y中,当x空了或者y满了时就停止(满足其中一个条件才停下)。请问,在操作全部结束后,C中的水量有多少种可能性。...原创 2022-07-27 09:39:32 · 144 阅读 · 0 评论 -
3438. 数制转换
求任意两个不同进制非负整数的转换(2进制∼16进制),所给整数在int范围内。不同进制的表示符号为(0,1,…,9,a,b,…,f)或者(0,1,…,9,A,B,…,F)原创 2022-07-27 09:38:01 · 88 阅读 · 0 评论 -
3477. 简单排序
给定一个包含n个整数的数组,请你删除数组中的重复元素并将数组从小到大排序后输出。原创 2022-07-27 09:37:19 · 151 阅读 · 0 评论 -
3428. 放苹果
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?盘子相对顺序不同,例如5,1,1和1,5,1算作同一种分法。原创 2022-07-26 09:18:45 · 70 阅读 · 0 评论 -
693. 行程排序
玛丽需要从某地飞往另一目的地,由于没有直达飞机,所以需要在中途转很多航班。。显然旅途中不可能到同一中转城市两次或以上,因为这没有意义。不幸的是,她将自己的机票的顺序搞乱了,将机票按乘坐顺序整理好对她来说不是一件容易的事。请你帮助玛丽整理机票,使机票按正确顺序排列。...原创 2022-07-26 09:18:10 · 65 阅读 · 0 评论 -
3311. 最长算术
一个算术数组是指至少包含两个整数,且相邻整数之间的差值都相等的整数数组。例如,[9、10],[3、3、3]和[9、7、5、3]是算术数组,而[1、3、3、7],[2、1、2],和[1、2、4]不是算术数组。Sarasvati有一个包含N个非负整数的数组,其中的第i个整数为Ai。她想从数组中选择一个最大长度的连续算术子数组。请帮助她确定最长的连续算术子数组的长度。...原创 2022-07-26 09:17:38 · 88 阅读 · 0 评论 -
691. 立方体IV
Vincenzo决定制作立方体IV,但所有预算只够制作一个正方形迷宫。它是一个完美的迷宫,每个房间都呈正方形,并具有4扇门(四个边一边1个)。每个房间里都有一个号码。一个人只有在下一个房间的号码比当前房间的号码大1的情况下,才能从当前房间移动到下一个房间。现在,Vincenzo为所有房间分配了唯一的号码(1,2,3,…S2)然后将S2个人放在了迷宫中,每个房间1个,其中S是迷宫的边长。能够移动次数最多的人将获胜。弄清楚谁将成为赢家,以及他将能够到达的房间数量。...原创 2022-07-26 09:16:55 · 80 阅读 · 0 评论 -
4279. 笛卡尔树
是由一系列不同数字构成的二叉树。树满足堆的性质,中序遍历返回原始序列。最小笛卡尔树表示满足小根堆性质的笛卡尔树。例如,给定序列{8,15,3,4,1,5,12,10,18,6},则生成的最小堆笛卡尔树如图所示。现在,给定一个长度为N的原始序列,请你生成最小堆笛卡尔树,并输出其层序遍历序列。...原创 2022-07-26 09:16:17 · 105 阅读 · 0 评论 -
4278. 峰会
峰会是国家元首或政府首脑的会议。为峰会安排休息区可不是一件简单的工作。一共有N个首脑参加峰会,编号1∼N。这些首脑之间存在M对两两之间的直接朋友关系。在划分区域时,我们希望被安排在同一休息区域的首脑们满足,任意两人之间都是直接朋友关系。现在,给定K个关于划分休息区域的安排,请你依次判断每个安排是否合理。...原创 2022-07-26 09:15:40 · 78 阅读 · 0 评论 -
4277. 区块反转
给定一个单链表L,我们将每K个结点看成一个区块(链表最后若不足K个结点,也看成一个区块),请编写程序将L中所有区块的链接反转。例如给定L为1→2→3→4→5→6→7→8,K为3,则输出应该为7→8→4→5→6→1→2→3。本题中可能包含不在单链表中的节点,这些节点无需考虑。...原创 2022-07-26 09:15:06 · 178 阅读 · 0 评论 -
4276. 擅长C
当你被面试官要求用CC写一个时,有本事像下图显示的那样写一个出来吗?原创 2022-07-26 09:14:33 · 68 阅读 · 0 评论 -
4275. Dijkstra序列
Dijkstra算法是非常著名的贪心算法之一。它用于解决单源最短路径问题,即指定一个特定源顶点,求该顶点到给定图的所有其他顶点的最短路径。它由计算机科学家EdsgerW.Dijkstra于1956年构思并在三年后出版。在该算法中,我们需要不断维护一个包含最短路径树中顶点的集合。在每一步中,我们找到一个尚未在集合内且与源顶点距离最小的顶点,并将其收于集合中。因此,通过Dijkstra算法,我们可以逐步生成一个有序的顶点序列,我们称之为Dijkstra序列。...原创 2022-07-26 09:13:57 · 92 阅读 · 0 评论 -
4274. 后缀表达式
给定一个二叉表达式树,请你输出相应的后缀表达式,要求使用括号反映运算符的优先级。原创 2022-07-26 09:13:27 · 86 阅读 · 0 评论 -
4273. 链表合并
给定两个单链表 L1=a1→a2→…→an−1→an 和 L2=b1→b2→…→bm−1→bm,满足:n≥2m。你的任务是将较短的那个链表逆序,然后将之并入较长的链表,得到形如 a1→a2→bm→a3→a4→bm−1… 的结果。例如给定两个链表分别为 6→7 和 1→2→3→4→5,你应该输出 1→2→7→3→4→6→5。补充本题中可能包含不在两个单链表中的节点,这些节点无需考虑。输入首先在第一行中给出两个链表 L1 和 L2 的头结点的地址,以及正整数 N,即给定的结点总数。一个结点的地址是一个 5 位原创 2022-06-16 15:35:54 · 111 阅读 · 0 评论 -
4269. 校庆
20192019 年浙江大学将要庆祝成立 122 周年。为了准备校庆,校友会收集了所有校友的身份证号。现在需要请你编写程序,根据来参加校庆的所有人士的身份证号,统计来了多少校友。输入在第一行给出正整数 N。随后 N 行,每行给出一位校友的身份证号(18 位由数字和大写字母 X 组成的字符串)。题目保证身份证号不重复。随后给出前来参加校庆的所有人士的信息:首先是一个正整数 M。随后 M 行,每行给出一位人士的身份证号。题目保证身份证号不重复。首先在第一行输出参加校庆的校友的人数。然后在第二行输出最年长的校友的原创 2022-06-16 15:35:23 · 78 阅读 · 0 评论 -
4268. 性感素数
“性感素数 ”是指形如 (p,p+6) 这样的一对素数。之所以叫这个名字,是因为拉丁语管“六”叫“sex”(即英语的“性感”)。现给定一个整数,请你判断其是否为一个性感素数。输入在一行中给出一个正整数 N。若 N 是一个性感素数,则在一行中输出 ,并在第二行输出与 N 配对的另一个性感素数(若这样的数不唯一,输出较小的那个)。若 N 不是性感素数,则在一行中输出 ,然后在第二行输出大于 N 的最小性感素数。1≤N≤108...原创 2022-06-16 15:34:51 · 88 阅读 · 0 评论 -
1927. 自动补全
奶牛贝茜买了一个新手机,并十分喜欢用它发短信。但是它的大蹄子在手机的小屏幕上打字时遇到了麻烦,它总是把单词拼错。农夫约翰同意通过编写一个自动补全程序来帮助它,当它输入部分单词时,该应用程序可以给出补全建议。自动补全程序可以访问一个包含 W 个单词的词典,每个单词由 a…z 范围内的小写字母组成,其中所有单词中的字母总数最多为 1000000。现在给定一个包含 N 个部分单词的列表,每个部分单词最多包含 1000 个字母。对于每个部分单词 i,还会提供一个整数 Ki,自动补全程序需要找到词典中以部分单词 i原创 2022-06-04 18:35:31 · 114 阅读 · 0 评论 -
2004. 错字
贝茜刚买了一台新的笔记本电脑,但不幸的是,她发现自己打不好字,因为相对于小键盘来说,她的大蹄子太大了。贝茜刚刚在尝试输入一个平衡括号字符串。但是,她意识到她可能将其中某个字符输错了,即将 ( 错输为 ) 或将 ) 错输为 (。请帮助贝茜找到字符串的所有位置中,满足反转该位置上的字符后,括号字符串变得平衡的位置数量。有若干种定义括号字符串是否“平衡”的方式。最简单的定义为字符串所包含的 ( 和 ) 数量必须相同,并且对于字符串的任意前缀,所包含的 ( 的数目都不少于 ) 的数目。例如,以下字符串都是平衡的:原创 2022-06-04 18:34:59 · 207 阅读 · 0 评论 -
2013. 三条线
农夫约翰想用他购买的新监视系统监视他的 N 头奶牛。第 i 头奶牛位于具有整数坐标的位置 (xi,yi)。没有两头奶牛占据相同的位置。约翰的监视系统包含三个特殊的摄像头,每个摄像头都能够沿垂直或水平线观察一条线上所有的奶牛。请确定约翰是否可以通过合理设置三个摄像头的摆放位置,以便他可以监视所有 N 头奶牛。也就是说,请确定是否可以通过三条垂直或水平摆放的线将所有 N 个奶牛所在位置全部覆盖。第一行包含整数 N。接下来 N 行,每行包含两个整数 xi,yi,表示一头奶牛所在位置的横纵坐标。如果可以通过三条垂直原创 2022-06-03 22:06:14 · 176 阅读 · 0 评论 -
2023. 连接奶牛
每天农夫约翰都会去巡视农场,检查他的 N 头奶牛的健康状况。每头奶牛的位置由二维平面中的一个点描述,而约翰从原点 (0,0) 出发。所有奶牛的位置互不相同,且都不在原点。为了使自己的路线更有趣,农夫约翰决定只沿平行于坐标轴的方向行走,即只能向北,向南,向东或向西行走。此外,他只有在到达奶牛的位置时才能改变行进方向(如果需要,他也可以选择通过奶牛的位置而不改变方向)。在他改变方向时,可以选择转向 90 或 180 度。约翰的行进路线必须满足在他访问完所有奶牛后能够回到原点。如果他在每头奶牛的位置处恰好转向一次原创 2022-06-03 22:05:45 · 219 阅读 · 0 评论 -
2032. 过度种植
农夫约翰购买了一台新机器,该机器能够在其农场的任何“轴向对齐”(即具有垂直和水平边)的矩形区域内种草。不幸的是,这台机器有一天出了故障,并在 N 个不同的矩形区域内进行了种草工作,其中一些区域可能会有重叠。给定机器工作的具体 N 个矩形区域,请你计算种上草的区域的总面积是多少。第一行包含整数 N。接下来 N 行,每行包含四个整数 x1,y1,x2,y2,表示其中一个矩形区域的左上角坐标 (x1,y1) 和右下角坐标 (x2,y2)。输出种上草的区域的总面积。1≤N≤10,−10000≤x1,y1,x2,y原创 2022-06-03 22:04:47 · 199 阅读 · 0 评论 -
2049. 奶牛摄影
奶牛们今天非常调皮。农夫约翰想给站成一排的奶牛拍一张照片,但是在他有机会拍下照片之前,奶牛一直在移动。具体的说,约翰有 N 头奶牛,编号 1∼N。约翰想拍一张奶牛以特定顺序站成一排的照片,这个顺序可以用数组 A[1…N] 来表示,其中 A[j] 表示排列中第 j 头奶牛的编号。他按这个顺序将奶牛排成一排,但就在他按下相机上的按钮拍摄照片之前,最多一头奶牛移动到了新的位置上。更准确地说,要么没有奶牛移动,要么一头奶牛离开她在队列中的当前位置,然后重新插入到队列中的新位置。约翰非常沮丧,但并没有灰心,他再次按照原创 2022-06-03 22:04:13 · 357 阅读 · 0 评论 -
4441. 谎牛计数
奶牛 Bessie 躲在数轴上的某处。农夫约翰的 N 头奶牛中的每头奶牛都有一条信息要分享:第 i 头奶牛说 Bessie 躲在小于或等于 pi 的某个位置,或者说 Bessie 躲在大于或等于 pi 的某个位置。不幸的是,可能不存在躲藏位置与所有奶牛的回答均一致,这意味着并非所有奶牛都在说真话。计算在撒谎的奶牛的最小数量。输入的第一行包含 N。以下 N 行每行包含字符 L 或 G,之后是一个整数 pi。L 表示第 i 头奶牛说 Bessie 的躲藏位置小于或等于 pi,而 G 表示第 i 头奶牛说 Bes原创 2022-06-03 22:03:51 · 572 阅读 · 0 评论 -
4367. 拍照2
农夫约翰有 N 头奶牛,编号 1∼N。约翰让它们排成一排,以便拍照。最初,奶牛从左到右按照 a1,a2,…,aN 的顺序排列。但是,约翰希望奶牛从左到右按照 b1,b2,…,bN 的顺序排列。为此,他需要对队列进行一系列的调整操作。每次操作可以选择任意一头奶牛并将其向左移动一些位置。请问,至少需要多少次操作,才能使奶牛按照约翰满意的顺序排列。第一行包含整数 N。第二行包含 a1,a2,…,aN,这是一个 1∼N 的排列。第三行包含 b1,b2,…,bN,这是一个 1∼N 的排列。一个整数,表示所需的最少操作原创 2022-06-03 22:02:26 · 113 阅读 · 0 评论 -
4330. 非传递骰子
为了消磨牛棚里的时光,奶牛们喜欢玩简单的骰子游戏。其中一种游戏使用两个骰子 X 和 Y 进行。两个骰子均被投掷,获胜的骰子是显示的数字较大的骰子。如果两者显示相同的数字,则重新投掷(只要持续打平,骰子可能会被重新投掷多次)。如果骰子 X 比骰子 Y 赢的概率更大,我们称骰子 X 击败骰子 Y。考虑以下三个的 4 面骰子:骰子 A 在各面上有数字 4,5,6 和 7。骰子 B 在各面上有数字 2,4,5 和 10。骰子 C 在各面上有数字 1,4,8 和 9。这些骰子满足一个相当奇妙的性质:A 击败 B,B原创 2022-06-03 22:01:47 · 496 阅读 · 0 评论 -
4262. 空调
Farmer John 的 N 头奶牛对他们牛棚的室温非常挑剔。有些奶牛喜欢温度低一些,而有些奶牛则喜欢温度高一些。Farmer John 的牛棚包含一排 N 个牛栏,编号为 1…N,每个牛栏里有一头牛。第 i 头奶牛希望她的牛栏中的温度是 pi,而现在她的牛栏中的温度是 ti。为了确保每头奶牛都感到舒适,Farmer John 安装了一个新的空调系统。该系统进行控制的方式非常有趣,他可以向系统发送命令,告诉它将一组连续的牛栏内的温度升高或降低 1 个单位——例如「将牛栏 5…8 的温度升高 1 个单位」。原创 2022-06-03 22:01:17 · 184 阅读 · 0 评论 -
3746. 牛的学术圈 II
Bessie 正在申请计算机科学的研究生,并取得了一所久负盛名的计算机科学实验室的面试通知。然而,为了避免冒犯任何人,Bessie 有意先确定实验室的 N 名现有成员的相对资历。没有两名实验室成员的资历相同,但确定他们的资历深浅可能并不好办。为此,Bessie 将会对实验室的出版物进行调查。每份出版物均包含一个作者列表,为所有 N 名实验室成员的一个排列。列表按每名实验室成员对这篇文章的贡献降序排列。如果多名研究员的贡献相等,则按字典序排列。由于更有资历的实验室成员负有更多的管理责任,更有资历原创 2022-05-22 15:46:24 · 90 阅读 · 0 评论 -
3371. 舒适的奶牛
Farmer John 的草地可以被看作是一个由正方形方格组成的巨大的二维方阵(想象一个巨大的棋盘)。初始时,草地上是空的。Farmer John 将会逐一地将 N 头奶牛加入到草地上。第 i 头奶牛将会占据方格 (xi,yi),不同于所有已经被其他奶牛占据的方格。一头奶牛被称为是「舒适的」,如果它水平或竖直方向上与恰好三头其他奶牛相邻。Farmer John 对他的农场上舒适的奶牛数量感兴趣。对 1…N 中的每一个 i,输出第 i 头奶牛加入到草地上之后舒适的奶牛的数量。输入格式输入的第一原创 2022-05-22 15:45:45 · 85 阅读 · 0 评论 -
3359. 更多奇怪的照片
Farmer John 正再一次尝试给他的 N 头奶牛拍照。每头奶牛有一个范围在 1…100 之内的整数的「品种编号」,编号可能重复。Farmer John 对他的照片有一个十分古怪的构思:他希望将所有的奶牛分为不相交的若干组(换句话说,将每头奶牛分到恰好一组中)并将这些组排成一行,使得第一组的奶牛的品种编号之和为偶数,第二组的编号之和为奇数,以此类推,奇偶交替。Farmer John 可以分成的最大组数是多少?输入格式输入的第一行包含 N。下一行包含 N 个空格分隔的整数,为 N 头奶牛的品种原创 2022-05-22 15:45:14 · 129 阅读 · 0 评论 -
2012. 一排奶牛
农夫约翰的 N 头奶牛排成一排。每头奶牛都用一个整数品种 ID 标识,队列中第 i 头奶牛的 ID 为 Bi。约翰认为如果有一大段连续的奶牛都具有相同的品种 ID,他的奶牛就会更加的引人注目。为了创造这样的连续段,约翰决定选取一个特定品种 ID,并从队列中剔除所有具有此 ID 的奶牛。请帮助约翰确定,他通过这样做,能够获得的具有相同品种 ID 的最大奶牛连续段的长度。输入格式第一行包含整数 N。接下来 N 行,每行包含一个 Bi。输出格式输出具有相同品种 ID 的最大奶牛连续段的长度。数原创 2022-05-22 15:44:42 · 387 阅读 · 0 评论 -
2022. 倍数 17
在意识到软件开发有很多钱可赚之后,农夫约翰开办了一家小型企业,为当地农业行业的客户编写简短的程序。他的第一个编程任务对他来说似乎非常简单:他的客户希望他编写一个程序,该程序将数字 N 作为输入,并将 17×N 作为输出。约翰刚刚写完这个简单的程序,他的客户就惊慌失措的给他打电话,告诉他输入和输出都必须用二进制数字表示,而且这些数字可能很大。请帮助约翰完成他的编程任务。给定一个用二进制表示并且不超过 1000 位的输入数字 NN,输出二进制表示下的 17×N。输入格式一个不超过 1000 位的二进原创 2022-05-22 15:44:00 · 77 阅读 · 0 评论 -
2031. 折叠绳子
农夫约翰有一条长度为 L 的绳子,可用于农场周围的各种任务。绳子在不同的位置有 N 个绳结,包括两个端点处各有一个。约翰注意到,在某些位置,他可以将绳子对折,这样,相对的绳索上的绳结就可以彼此完全对齐:请帮助约翰统计具有此属性的折叠点数。允许在某个绳结处折叠,但不允许在端点绳结处折叠。折叠后,较长的一侧可以有多余节点。输入格式第一行包含两个整数 N 和 L。接下来 N 行,每行包含一个 0∼L 范围内的整数,表示一个绳结的位置。其中两行包含的数字分别是 0 和 L。输出格式输出有效折叠原创 2022-05-22 15:43:07 · 203 阅读 · 0 评论