2021牛客寒假算法基础集训营3
比赛链接
2021牛客寒假算法基础集训营3
C.重力坠击
题目描述
在一个二维平面上有 个敌人,第 个敌人可以描述为一个以 为圆心, 为半径的圆。
你每次可以对一个半径为 的圆范围内进行攻击(圆心自选,但圆心的横纵坐标必须为整数),对于与你攻击范围有 交点的敌人都会被消火。
你总共可以发动 次攻击,问最多能消多少敌人。
输入描述:
第一行以空格分隔的三个整数 。
接下来 行每行以空格分隔的三个整数 。
敌人的位置可能会有重叠。
输出描述:
输出一行一个正整数代表答案。
示例1
输入
输出
说明
只能发动一次攻击,可以攻击圆心为(-1,0)的圆,这样可以消灭第一个和第三个敌人。
解题思路
dfs
直接暴力枚举所有情况即可,这里千万要注意备份数组不能设置为全局变量!!!
- 时间复杂度:
代码
J.加法和乘法
题目描述
有一天牛牛和牛妹在做游戏,规则如下:
桌面上摆着张纸牌,每张纸牌上写着一个正整数,由牛牛先手轮流执行以下操作:
如果桌面上只剩一张纸牌,游戏结束,这张纸牌上的数字如果是奇数则牛牛胜利,反之牛妹胜利。
当前行动玩家选择两张纸牌,设上面的数字分别为,接下来玩家从加法和乘法中选择一个并应用到这两个数字上,得到结果为,接下来将选择的两张纸牌丢弃,并拿一张新的纸牌放到桌面上,在上面写上。
假设双方均以最优策略行动,最后谁会赢?
输入描述:
第一行一个正整数,代表开始的纸牌数。
第二行个空格分隔的正整数代表开始纸牌上的数字。
输出描述:
如果牛牛能赢,输出,否则输出。
示例1
输入
输出
示例2
输入
输出
解题思路
博弈论
首先需要特判 的情况,另外如果最后一次操作是后手操作的话,由于后手总是可以将两个数变为偶数,所以后手必胜;否则如果偶数数量至多为 ,先手必胜,因为如果有偶数的话先手可以消掉这个偶数,如果后手下次再产生(至多一个)偶数,下下轮先手可以再消去,最后的操作在于先手,所以先手必胜;否则如果偶数数量大于等于 ,先手必败,先手每次最多只能消掉一个偶数,而后手可以产生偶数,最后一个数一定是偶数
- 时间复杂度:
代码
__EOF__

本文链接:https://www.cnblogs.com/zyyun/p/16047290.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!