bandiaoz
bandiaoz
全部文章
分类
题解(2)
归档
标签
去牛客网
登录
/
注册
bandiaoz的博客
全部文章
(共343篇)
题解 | #马戏团#
解题思路 题目要求: 马戏团员需要叠罗汉表演 上面的人必须比下面的人矮且轻(或相等) 求最大能叠多高 需要处理多组输入 解题策略: 先按体重从小到大排序(相同体重时身高高的排前面) 然后对身高求最长递增子序列 使用二分查找优化LIS算法 代码 cpp java py...
2024-12-29
1
65
题解 | #魔法表#
解题思路 题目要求: 给定起始角度 和目标角度 (0-359度) 可以顺时针或逆时针旋转 需要找到最短旋转路径 当两种方向旋转角度相同时,选择顺时针 解题策略: 比较 和 的大小关系 计算顺时针和逆时针两个方向的旋转角度 选择较小的角度 如果角度相等,选择顺时针方向(正数) ...
2024-12-29
0
91
题解 | #小Q的排序#
解题思路 题目要求: 有两种操作: 将前 个数排为升序 将后 个数排为升序 求最少需要多少次操作使序列变为升序 分析不同情况: 如果序列已经是升序,需要0次操作 如果最小值在开头或最大值在结尾,需要1次操作 如果最小值在结尾且最大值在开头,需要3次操作 其他情况需要2次操作 ...
2024-12-29
1
110
题解 | #连线游戏#
解题思路 题目要求: 在圆上均匀分布 个点 连接两点形成线段 线段不能相交(端点可以相交) 求最大可能的线段数 解题分析: 对于 个点,最多可以连接的不相交线段数是 证明: 每个点最多可以连接到两个其他点(否则会相交) 总共有 个点,每条线段连接2个点 考虑到不能相交的限制,...
2024-12-29
0
143
题解 | #石子合并#
解题思路 题目描述: 堆石子,每堆石子数量为 每次可以选择两堆合并,得分为两堆石子数量的乘积 求最大可能得分 解题策略: 观察发现,无论合并顺序如何,最终得分是所有可能的两两组合的乘积之和 因为每次合并后的新堆石子数量是加法,而得分是乘法 所以合并顺序不影响最终结果 代码 ...
2024-12-29
0
119
题解 | #字符串距离#
解题思路 题目要求计算字符串 与 中所有长度为 的子串的距离和 字符串距离定义:对应位置字符不同的数量 解题策略: 使用滑动窗口统计当前窗口中'a'和'b'的数量 对于 中的每个字符,根据它与 中对应位置字符的不同来累加距离 当窗口移动时,更新字符计数 代码 cpp j...
2024-12-29
0
111
题解 | #魔法阵#
解题思路 判断四个点能否构成正方形的简化方法: 检查相邻边是否相等 如果四条边都相等,则可能构成正方形 解题步骤: 读取输入的坐标点 计算相邻点之间的距离平方 判断相邻边是否相等 代码 cpp java python #include <iostream>...
2024-12-29
0
71
题解 | #数字构造#
解题思路 题目要求构造一个十进制数,使得: 数位和等于给定值 相邻数位不能相同 不能包含 这个数要尽可能大 关键发现: 要使数尽可能大,应该使用尽可能大的数字 由于相邻数位不能相同,最优解应该是交替使用两个数字 9和8太大,无法构造出大多数 值,最优解应该使用1和2交替 根据 ...
2024-12-29
0
92
题解 | #数字转换机#
解题思路 题目要求将两个数字 通过按钮操作转换成目标数字 有两种操作: 红色按钮:两个数字同时加1 蓝色按钮:两个数字同时乘2 使用DFS搜索所有可能的操作序列,找到最短的有效序列 剪枝条件: 如果当前数字超过目标数字,则无效 如果当前步数超过已知最小步数,则停止搜索 如果只有一个数字...
2024-12-29
0
83
题解 | #最小排列#
解题思路 题目要求通过一次交换操作得到字典序最小的排列 解题策略: 如果存在位置 使得 ,则找到这样的最小位置 将 与 (即值 所在的位置)进行交换 如果所有位置都满足 ,则交换最后两个位置 使用辅助数组 记录每个数字的位置,方便查找 代码 cpp java pyt...
2024-12-29
0
100
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页