【蚂蚁笔试题汇总】[全网首发] 2024-03-30-蚂蚁春招笔试题-三语言题解(CPP Python Java)(1)

本文汇总了2024年蚂蚁集团春季招聘笔试的三道算法题,包括K小姐的宠物店连通图问题、植物大战僵尸游戏策略及K小姐的蛋糕店选择方案。每道题目提供了问题描述、输入输出格式、样例及解题思路和参考代码,主要涉及图论、二分搜索等算法知识。
摘要由CSDN通过智能技术生成
	- [样例输出](#_356)
	- [数据范围](#_362)
	- [题解](#_366)
	- [参考代码](#_396)
+ [写在最后](#_615)
+ [📧 KK这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 KK领取~](#_KK_KK_616)

01.K小姐和她的宠物店连通图

问题描述

K小姐最近开了一家宠物店,她的宠物店里有

n

n

n 个宠物笼,现在她想在这些笼子之间修建一些通道,使得所有的笼子都能互相到达。通道是双向的,且每个笼子最多只能修建一条通道连接另一个笼子。K小姐想知道,如果她要修建

m

m

m 条通道,是否存在一种修建方案,使得修建完成后所有笼子都互相连通。

输入格式

第一行输入一个整数

T

T

T (

1

T

1

0

5

1 \leq T \leq 10^5

1≤T≤105),表示询问数量。

接下来

T

T

T 行,每行输入两个整数

n

n

n 和

m

m

m (

1

n

,

m

1

0

9

1 \leq n, m \leq 10^9

1≤n,m≤109),分别表示笼子的数量和计划修建的通道数量。

输出格式

对于每个询问,如果存在满足要求的修建方案,输出 “YES”,否则输出 “NO”。

样例输入
2
3 3
3 1

样例输出
YES
NO

数据范围
  • 1

T

1

0

5

1 \leq T \leq 10^5

1≤T≤105

  • 1

n

,

m

1

0

9

1 \leq n, m \leq 10^9

1≤n,m≤109

题解

首先我们考虑什么情况下,

m

m

m 条通道一定能使

n

n

n 个笼子全部连通。因为通道是双向的,所以实际上我们是要构建一棵

n

n

n 个节点的树。众所周知,一棵

n

n

n 个节点的树有

n

1

n-1

n−1 条边,所以当

m

n

1

m \geq n-1

m≥n−1 时,一定可以使所有笼子连通。

其次我们再考虑什么情况下,

m

m

m 条通道一定不能使所有笼子连通。根据图论的知识,我们知道在

n

n

n 个节点的简单无向图中,最多可以有

n

(

n

1

)

2

\frac{n(n-1)}{2}

2n(n−1)​ 条边。如果

m

n

(

n

1

)

2

m > \frac{n(n-1)}{2}

m>2n(n−1)​,就一定会出现重边或自环,不满足题目要求。所以当

m

n

(

n

1

)

2

m > \frac{n(n-1)}{2}

m>2n(n−1)​ 时,一定不存在合法方案。

综上所述,我们只需要判断

m

m

m 是否满足

n

1

m

n

(

n

1

)

2

n-1 \leq m \leq \frac{n(n-1)}{2}

n−1≤m≤2n(n−1)​,如果满足,就输出 “YES”,否则输出 “NO”。

时间复杂度

O

(

T

)

O(T)

O(T),空间复杂度

<
  • 29
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2023年3月11日,美团春季招聘笔试中共包含五道编程题目。以下是对每道题目的简要说明: 1. 题目一:这道题目要求解决一个数字统计的问题。可能涉及到的知识点包括数据结构、循环和条件判断等。解决问题的思路可能是使用字典等数据结构来保存统计结果,并使用循环逐个读取输入数据并进行统计。 2. 题目二:这道题目可能是一个字符串处理的问题。需要使用字符串的方法进行操作,如提取、拼接、查找和替换等。可能的解决思路包括使用正则表达式、切片和遍历等。 3. 题目:这道题目可能涉及到算法和数据结构的知识。可能是一道涉及到数组、链表、树等数据结构的问题。解决思路可能包括遍历、递归、搜索和排序等。 4. 题目四:这道题目可能是一个动态规划的问题。需要根据给定的条件和规则,通过动态规划的方式求解问题。解决思路包括定义状态和转移方程,使用递推或记忆化搜索进行求解。 5. 题目五:这道题目可能是一个图论或网络问题。需要根据给定的图或网络结构,解决一个相关的问题。可能涉及到广度优先搜索、深度优先搜索、最短路径等知识。解决思路可能包括使用图或网络的相关算法进行求解。 以上只是对这五道编程题目的一些可能情况进行的简要描述,具体的题目内容可能会有所不同。希望这些信息能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值