摘要: 记得曾参考教材与几篇博客,最终写出自己的快速排序终极版。 详情可见 排序系列。 最终的版本大概是下面这个样子。 1 int Partition(int first, int end) { 2 //此处选择数列第一个记录作为基准 3 int tmp = r[first]; 4 while (first 阅读全文
posted @ 2021-08-11 20:26 Rekord 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 2011 假定三个2011相乘,取出前两个2011相乘的结果后四位与第三个2011相乘并对结果取后四位即为最终结果。 看到这是不是就想循环求解? 让我来滋醒你,200位的循环次数,不爆是不可能的! 而使用分治,200位大概等于2700,也就是说最多700轮分治左右(这里不算特殊情况20111)。 所 阅读全文
posted @ 2021-08-11 17:38 Rekord 阅读(592) 评论(0) 推荐(0) 编辑
摘要: 输出前k大的数 写这题时还偶然发现以前写的优化快排居然是错误的。——》快速排序优化方案的否定 思路的话,大致就是快排的删减版,即减少不必要的分治。(25行) 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 5 cons 阅读全文
posted @ 2021-08-11 15:58 Rekord 阅读(664) 评论(0) 推荐(0) 编辑
摘要: 黑白棋子的移动 当左边连续白棋还有一定数量时(>4),每次移动其实是一样的方式。(16、23行) 当按照这种固定的方式进行移动后,除去移动好了的棋子整个棋盘可以看作是原棋盘的子集。 至于左边白棋数量等于4时,就可以当做临界条件特殊处理。(16、18、19、20、21行) 1 #include<ios 阅读全文
posted @ 2021-08-11 13:38 Rekord 阅读(651) 评论(0) 推荐(1) 编辑
摘要: 循环比赛日程表 当m=3时 第一天 第二天 第三天 第四天 第五天 第六天 第七天 1 2 3 4 5 6 7 8 2 1 4 3 6 5 8 7 3 4 1 2 7 8 5 6 4 3 2 1 8 7 6 5 5 6 7 8 1 2 3 4 6 5 8 7 2 1 4 3 7 8 5 6 3 4 阅读全文
posted @ 2021-08-11 10:46 Rekord 阅读(657) 评论(0) 推荐(0) 编辑