摘要:
原题链接 考察: hash 错误思路: 直接用字符串hash,但是字符串hash是针对给定长度求前缀的hash,这里明显不能使用 错误思路2: 没有用变量给字符制造映射,而是直接用的ASCII码作映射,但是这样WA了,目前不知原因 正确思路: 重新给字符制造映射,下标从1开始 1 #include 阅读全文
摘要:
原题链接 考察: 归并排序 八数码的延伸版,这里允许了N为偶数,所以要分情况讨论 当N为偶数,向下挪一行奇偶改变,再向下挪奇偶又改变,因此答案和0的位置有关 易错: 判断条件的时候,&1两边都要打括号不然报错 1 #include <iostream> 2 #include <algorithm> 阅读全文
摘要:
原题链接 考察:归并排序 n恒为奇数,所以左右上下移动不会改变逆序对的奇偶性. 1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 const int N = 250010; 5 typedef long long 阅读全文
摘要:
原题链接 考察:归并排序 思路: 这道题的延伸 1215. 小朋友排队 很明显就是求逆序对,借着这道题复习逆序对了 lyd大佬的方法待补,我是真的看不懂他的算法 1 #include <iostream> 2 using namespace std; 3 #define ll long long 4 阅读全文
摘要:
原题链接 考察:快速排序 思路: 快速排序的原理是将小于基准点的数全部放在基准点左边,大于全部放在右边,等于随机.我们要找第k小的数,当快速排序把区间一分为2的时候,如果左边的长度>k,说明第k小的数在左边,如果<说明要找右边找k-cnt(左边的长度)个数. 当我们不断递归的时候,区间会减小通过计算 阅读全文