排序
文章平均质量分 79
寂静山林
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UVa 120 Stacks of Flapjacks
题目要求模拟煎饼叠排序过程,通过翻转操作将煎饼按直径从小到大排列(顶部最小,底部最大)。每次翻转操作将指定位置及以上的煎饼顺序反转。解题采用贪心策略:从最大煎饼开始,依次将其翻转到目标位置。算法时间复杂度为O(n²),适用于最多30个煎饼的情况。输入为一行煎饼直径,输出原始叠和翻转步骤(以0结尾)。代码通过排序和标记位置实现翻转操作,确保每次最多两次翻转即可将一个煎饼归位。原创 2026-01-07 10:21:24 · 745 阅读 · 0 评论 -
UVa 12652 Lines of Containers
本文探讨了如何通过整行或整列交换将打乱的集装箱矩阵恢复为原始有序排列的问题。通过分析行列交换的特性,提出了两个关键性质:每行必须包含连续的整数且最小值符合特定形式,每列元素对列数取模结果必须相同。基于此设计了可行性判断算法,首先验证行列特征,然后计算将行号序列和列模值序列排序所需的最少交换次数。若满足所有条件,输出总交换次数;否则输出"*"。该算法时间复杂度为O(L×C + L² + C²),适用于大规模数据。样例测试验证了算法的正确性。原创 2026-01-06 10:11:42 · 958 阅读 · 0 评论 -
UVa 13150 National Bomb Defusing Squad
本题要求计算自杀式炸弹在拥挤场所的预期死亡人数。给定N个人的坐标,每个人携带炸弹概率相等,爆炸半径为R时会杀死距离携带者不超过R的所有人。需要高效处理最多3000人和1000个半径查询。核心思路是预处理所有点对之间的欧几里得距离平方并排序,对每个查询半径R,通过二分查找快速统计每个点作为炸弹源时的死亡人数,最后计算平均值。算法复杂度为O(N² log N + QN log N),利用距离平方比较避免浮点运算,在时限内完成计算。原创 2025-12-28 08:28:21 · 977 阅读 · 0 评论 -
UVa 12537 Radiation
本文研究了两个核电站高风险区外防护设备分配问题。通过数学推导发现,最终无设备的低风险区房子数量仅取决于总房子数N与两个高风险区房子数A、B之差,而与重叠区C无关。基于此,提出预处理各房子到核电站的平方距离并排序,利用二分查找快速查询A、B值,从而在O(logN)时间内计算max(0, N-A-B)。该算法时间复杂度为O(NlogN + qlogN),适用于大规模数据,验证了数学推导的正确性和实现的高效性。原创 2025-12-26 09:08:27 · 664 阅读 · 0 评论 -
UVa 12663 High Bridge Low Bridge
本文探讨了洪水淹没桥梁次数的统计问题。通过分析每次洪水上升阶段的水位变化,确定被淹桥梁的范围。采用排序和差分数组技巧高效处理大规模数据,实现O((n+m)logn)的时间复杂度。关键点在于正确理解题目要求,仅统计水位上升阶段超过桥梁高度的次数,而忽略下降阶段的影响。最终通过差分数组前缀和计算每座桥被淹次数,并统计满足条件的桥梁数量。原创 2025-12-23 20:55:55 · 663 阅读 · 0 评论 -
UVa 110 Meta-Loopless Sorts
本题要求编写一个程序,生成能排序n个整数的Pascal程序。生成的Pascal程序必须符合严格的语法规范:包含固定程序头、变量声明、输入语句,并仅能使用if-then-else语句进行变量比较。程序需要输出n!种可能的排序结果,每个结果对应一个writeln语句。通过递归构建插入排序的决策树,确保不重复比较且格式正确。输入n(1≤n≤8),输出对应的Pascal排序程序,程序间用空行分隔。原创 2025-12-07 19:23:58 · 486 阅读 · 0 评论 -
UVa 917 Euro 2004
题目要求模拟欧洲足球锦标赛的排名规则,根据比赛结果对参赛队伍进行排序。排名规则包括积分、净胜球、胜场数、进球数四项指标,若全部相同则进入子联赛模式递归比较。解决方案采用数据结构存储队伍和比赛信息,通过递归分组处理并列情况,最终按字母顺序输出完全并列的队伍。算法时间复杂度在合理范围内,适用于大规模数据。代码实现包括全局数据处理、子联赛计算和递归排名函数,确保严格遵循题目要求的排名优先级。原创 2025-12-06 18:52:26 · 677 阅读 · 0 评论 -
UVa 10732 The Strange Research
题目要求从给定的N个浮点数中,统计满足表达式(a+b)(1-ab)>0的无序对(a,b)的数量。通过数学分析,将条件转化为两种情况:(1) a+b>0且ab<1;(2) a+b<0且ab>1。针对每种情况,固定a后确定b的范围,利用排序和二分查找高效统计符合条件的b的数量。算法首先对数组排序,然后枚举每个a,通过二分查找快速计算满足条件的b的数量,最终将总数除以2得到答案。该方法时间复杂度为O(N log N),适用于大规模数据。样例输入输出验证了算法的正确性。原创 2025-12-05 11:28:34 · 774 阅读 · 0 评论 -
UVa 10665 Diatribe against Pigeonholes
本题要求为N个工人分配信箱,需满足包裹数越大的工人离书架中心越远的约束,并输出字母序最小的分配方案。核心在于设计贪心算法结合动态排序策略:使用双指针从两侧向中心分配,每次处理两个工人。采用两种排序方式——cmp1按包裹数降序、字母序升序选择左边工人,cmp2按包裹数降序、字母序降序选择右边工人。每次分配后重新排序剩余工人,确保在满足距离约束的前提下,左边放置字母序较小的工人,右边放置字母序较大的工人。通过动态调整,算法在O(N²logN)时间内求得全局字母序最小的解,由于N<26,效率完全可行。最终输出工人原创 2025-12-02 17:03:46 · 998 阅读 · 0 评论 -
UVa 1346 Songs
题目要求优化磁带歌曲排列顺序以最小化期望访问时间。通过分析发现,最优策略是将歌曲按照频率与长度的比值降序排列。输入包含歌曲信息及目标位置,输出排序后该位置的歌曲标识符。算法复杂度为O(N log N),主要来自排序操作。样例分析表明需计算每首歌的f_i/l_i比值并按此排序,但需注意题目示例可能存在特殊情况或不同解释。原创 2025-11-20 08:14:29 · 516 阅读 · 0 评论 -
UVa 1016 Silly Sort
本文解决最小成本排序问题,通过交换数字使序列升序排列,每次交换成本为两数之和。关键思路是将排列分解为不相交循环,对每个循环选择最优交换策略:仅用循环内最小值交换或借助全局最小值交换。算法步骤包括排序、循环分解、成本计算与比较。时间复杂度O(n log n),适用于n≤1000的规模。样例测试验证了算法的正确性。原创 2025-11-10 08:22:24 · 1019 阅读 · 0 评论 -
CF 439D Devu and His Brother
按:这是在回答洛谷上的一位用户的帖子所写的,本来想在洛谷上发布题解的,可能是在末尾增加了自己的优快云博客推广链接,管理员以“排版不整齐”为由拒绝,嗯,那就算了吧,发在优快云吧。原题解链接首先指出一个题意翻译的问题。原题目描述为“you are allowed to decrease or increase any element of any of the arrays by 1.”...原创 2020-03-29 10:37:30 · 746 阅读 · 1 评论 -
UVa Problem 120 Stacks of Flapjacks (煎饼堆)
// Stacks of Flapjacks (煎饼堆)// PC/UVa IDs: 110402/120, Popularity: B, Success rate: high Level: 2// Verdict: Accepted// Submission Date:原创 2011-05-22 23:57:00 · 2568 阅读 · 5 评论 -
UVa Problem 10037 Bridge (过桥)
// Bridge (过桥)// PC/UVa IDs: 110403/10037, Popularity: B, Success rate: low Level: 3// Verdict: Accepted// Submission Date: 2011-05-22//原创 2011-05-22 23:58:00 · 3045 阅读 · 2 评论 -
UVa Problem 10026 Shoemaker’s Problem (鞋匠的烦恼)
// Shoemaker’s Problem (鞋匠的烦恼)// PC/UVa IDs: 110405/10026, Popularity: C, Success rate: average Level: 2// Verdict: Accepted// Submission原创 2011-05-24 05:11:00 · 2259 阅读 · 0 评论 -
UVa Problem 10138 CDVII (CDVII 高速公路)
// CDVII (CDVII 高速公路)// PC/UVa IDs: 110406/10138, Popularity: C, Success rate: low Level: 2// Verdict: Accepted// Submission Date: 2011-0原创 2011-05-24 05:12:00 · 2911 阅读 · 1 评论 -
UVa Problem 10152 ShellSort (龟壳排序)
// ShellSort (龟壳排序)// PC/UVa IDs: 110407/10152, Popularity: B, Success rate: average Level: 2// Verdict: Accepted// Submission Date: 2011原创 2011-05-27 16:12:00 · 2553 阅读 · 3 评论 -
UVa Problem 10191 Longest Nap (最长打盹时间)
// Longest Nap (最长打盹时间)// PC/UVa IDs: 110404/10191, Popularity: B, Success rate: average Level: 1// Verdict: Accepted// Submission Date:原创 2011-05-22 23:59:00 · 2226 阅读 · 2 评论 -
UVa Problem 10194 Football (aka Soccer) (足球)
// Football (aka Soccer) (足球)// PC/UVa IDs: 110408/10194, Popularity: B, Success rate: average Level: 1// Verdict: Accepted// Submission原创 2011-05-27 16:14:00 · 2232 阅读 · 0 评论 -
UVa Problem 10191 Longest Nap (最长打盹时间)
// Longest Nap (最长打盹时间)// PC/UVa IDs: 110404/10191, Popularity: B, Success rate: average Level: 1// Verdict: Accepted// Submission Date: 2014-07-28// UVa Run Time: 0.018s//// 版权所有(C)2014,邱秋。meta原创 2014-07-28 17:03:50 · 3784 阅读 · 0 评论 -
UVa Problem 10041 Vito’s Family (Vito 家族)
// Vito’s Family (Vito 家族)// PC/UVa IDs: 110401/10041, Popularity: A, Success rate: high Level: 1// Verdict: Accepted// Submission Date:原创 2011-05-22 23:55:00 · 2476 阅读 · 0 评论
分享