摘要: 原题链接 考察:hash+前缀和 做完这道题感觉终于懂一点hash了,散列表hash是将值存储在映射的键里,会有不同值映射到相同键,因此必须要处理冲突 这道题牛二进制的前缀和会根据ash函数映射到相同键,这些前缀和有些和答案要求根本不符,所以我们必须筛掉那些不符合的键,也就是说这道题我们不能仅仅存储 阅读全文
posted @ 2021-01-07 12:25 acmloser 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:hash+字符串的最大最小表示法 通过这道题发现之前的最小最大表示法可以从1开始还不用写三元表达式,就是之前的断环成链思想,这种取余的又要下标从1开始还是断环成链比较方便 关于这道题写写对于hash的思考 字符串hash多用于已知长度的字符串,下标是字符串的下标,hash值不允许为0 阅读全文
posted @ 2021-01-07 02:01 acmloser 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:字符串匹配+hash优化+二分 错误思路: KMP算法是用于看一个串是否为另一个串的子串,这道题如果枚举子串,每个都求next数组再匹配时间复杂度是O(n^2) 求公共子串长度最好不要用KMP 正确思路: hash算法同样是枚举给定长度的字符串,但是hash不用求next数组,利用预 阅读全文
posted @ 2021-01-07 00:00 acmloser 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察: hash 错误思路: 直接用字符串hash,但是字符串hash是针对给定长度求前缀的hash,这里明显不能使用 错误思路2: 没有用变量给字符制造映射,而是直接用的ASCII码作映射,但是这样WA了,目前不知原因 正确思路: 重新给字符制造映射,下标从1开始 1 #include 阅读全文
posted @ 2021-01-06 22:27 acmloser 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察: 归并排序 八数码的延伸版,这里允许了N为偶数,所以要分情况讨论 当N为偶数,向下挪一行奇偶改变,再向下挪奇偶又改变,因此答案和0的位置有关 易错: 判断条件的时候,&1两边都要打括号不然报错 1 #include <iostream> 2 #include <algorithm> 阅读全文
posted @ 2021-01-06 11:24 acmloser 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:归并排序 n恒为奇数,所以左右上下移动不会改变逆序对的奇偶性. 1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 const int N = 250010; 5 typedef long long 阅读全文
posted @ 2021-01-06 09:38 acmloser 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:归并排序 思路: 这道题的延伸 1215. 小朋友排队 很明显就是求逆序对,借着这道题复习逆序对了 lyd大佬的方法待补,我是真的看不懂他的算法 1 #include <iostream> 2 using namespace std; 3 #define ll long long 4 阅读全文
posted @ 2021-01-06 01:29 acmloser 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:快速排序 思路: 快速排序的原理是将小于基准点的数全部放在基准点左边,大于全部放在右边,等于随机.我们要找第k小的数,当快速排序把区间一分为2的时候,如果左边的长度>k,说明第k小的数在左边,如果<说明要找右边找k-cnt(左边的长度)个数. 当我们不断递归的时候,区间会减小通过计算 阅读全文
posted @ 2021-01-06 00:25 acmloser 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:堆排序 这里涉及一个新算法:对顶堆. 其实我也第一次学 思路: 设序列长度为M,用小顶堆维护序列中M/2+1~M个数,用大顶堆维护1~M/2个数,我们动态地维护输入的数字,如果当前数比小顶堆的堆顶小就加入大顶堆,如果大就加入小顶堆.要注意我们必须保证大顶堆的size不能超过M/2,小 阅读全文
posted @ 2021-01-05 22:46 acmloser 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 原题链接 我愿称lyd为神 考察: 排序+贪心+前缀和 我们将行列分开看,这道题就可以看成均分纸牌的问题,如果纸牌总数不能除尽人数,那么一定无解. 如果可以除尽,本题就是环形分配纸牌问题. 我们利用贪心解题,先想方法让第一个人达到平均数,再想方法让第二个人达到平均数....当计算第i个人,需要的纸牌 阅读全文
posted @ 2021-01-05 16:37 acmloser 阅读(80) 评论(0) 推荐(0) 编辑