牛客练习赛105
练习赛105
A 切蛋糕的贝贝
题目描述
贝贝有一块正 边形的蛋糕,他想将其分为 块,使得面积之比为 (顺序可以打乱)。每一刀存在以下两种切法:
切线为经过多边形的重心(其外接圆的圆心)的对角线
切线为多边形的重心与其顶点的连线
贝贝想知道最少需要的刀数,但是他是个菜狗,以至于他无法解决这个问题,所以他找到了一个大佬(也就是你)帮忙解决。
思路
只有 能够被 整除时才会有答案。
B 抱歉,这没有集美
题目描述
有 个学生编号为 ,现在分给他们每一人一个按 编号的球,第 个学生分到的球得编号为 ,如果存在有学生自己得编号和手中得球得编号的最大公约数 为偶数,就是一个好的分法。现在问有多少种好的分法。
思路:
如果正向去考虑有多少种分法的话,需要从 个偶数种选出来 个来安放在所有的偶数的位置上的方案,也就是 但是这样的算法的话会有重复的选法被记录进去,所以正向很难算出来。那么就考虑正难则反的方法,让所有的奇数都占据在偶数的位置上,那么就是 ,所以最终的答案就是用总共的 减去这个值就行了。注意用逆元去计算
C 打牌的贝贝
题目描述:
贝贝和宁宁玩一种卡牌游戏,一共有 张牌,每个数介于 之间且各不相同,每个人一开始分别有 张牌。规则是:贝贝先出一张牌,宁宁要出一张比贝贝所给出的牌点数大的牌,不然宁宁输;如果最后所有的牌都出完了就是贝贝输。求两人获胜的方案有多少种。
思路:
因为贝贝每出一张牌宁宁都要出一张比这个数大的牌,所以相当于一个匹配的问题,把贝贝出的牌看作左括号,宁宁出的牌看作右括号,如果最终是一个合法的括号序列,就是宁宁赢否则贝贝赢。而合法括号序列数可以用卡特兰数 在 的时间复杂度下计算得出。
卡特兰数计算的公式:
D 点分治分点
题目描述:
给定一个 个点, 条带权的边的有向图,定义一条简单路径的 值为其路径上的边权的最小值, 为从 到 所有简单路径的最大 值。注意,简单路径不能包含两个相同的点,故恒有 .
对于给定的 , 从 到 输出 ,如果没有任何一条简单路径则输出 。
思路:
首先观察到是有向图上求两点之间路径上边权最小化的最大值, 重构树就用不上了。考虑到直接统计从 到 点的答案,不太好更新状态,所以也不能直接从起点开始遍历,那么就考虑用最小生成树的思想 ,按照边权从大到小的顺序来枚举所有的边,看这条边是不是与 所在的集合相连,是的话就保留这一条边,否则删去它;这样就保证了在最后剩余的边,就是我们想要得到的答案。
__EOF__

本文链接:https://www.cnblogs.com/Haven-/p/16861581.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框架的用法!