摘要: 原题链接 考察: 排序+贪心 因为做了七夕祭那道题,就把这道题重新做了一遍 这道题本质考察对中位数的了解 我们要求的答案是累加abs(s[i]-s[k]),i从1~n. 假设货仓位置为k,那么左侧距离和为p,右侧距离和为q,如果p>q,那么我们将仓库往右移动一点,使p减小;同理q>p.我们发现我们要 阅读全文
posted @ 2021-01-05 16:23 acmloser 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察: 堆排序+归并排序 错误思路: 将m个序列排序,堆储存,每个序列都选第一个,选完后pop掉堆顶最大的. 时间复杂度大概是O(mlogn+n*m),但是不能pop掉最大的,如果遇到 a {1,2,2} b{2,9,10}就是输出{3,10,11}的错误答案. 也就是a1+b2不一定比b 阅读全文
posted @ 2021-01-05 11:16 acmloser 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:并查集+枚举 错误思路: 接收了所有的判断语句,当出现矛盾的时候玩游戏的两人犯规次数+1,输出犯规最多的人. 很明显错在有裁判的关系是不准确的,因为那段关系不能考虑 正确思路: 枚举每个可能为裁判的人,如果可能为裁判的人>1,则不能确定;如果=1,则输出此人.如果==0,则impos 阅读全文
posted @ 2021-01-05 01:54 acmloser 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察: 带权并查集 思路: 设置东西方向和南北方向两个数组,其他就和之前的题目一样,但是要注意我们压缩路径的时候要把东西和南北距离都压缩 1 #include <iostream> 2 using namespace std; 3 const int N = 40010; 4 int p[ 阅读全文
posted @ 2021-01-04 19:42 acmloser 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察: 带权并查集 做了银河英雄传说和奇偶游戏后这题应该算简单了,没加入集合的加入集合,已入集合的检验就行了 1 #include <iostream> 2 #include <algorithm> 3 #include <vector> 4 using namespace std; 5 阅读全文
posted @ 2021-01-04 09:34 acmloser 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:并查集+位运算+前缀和思想+离散化 如果没想到前缀和这题完全没得思路,看了lyd大佬的提示,配合自己画图把这题做出来了= = 思路: 要AC本题我们需要前缀和思想,如果一个区间内1的个数为even,那么我们可以发现sum[r]-sum[l-1] = 偶,根据奇偶规律,我们可知这两个奇 阅读全文
posted @ 2021-01-04 01:21 acmloser 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:并查集+贪心或堆排序+贪心 因为最近在做并查集专题所以直接考虑用并查集写,但是看题目完全没有想到用并查集的方式,以前写的并查集题目关系的传递性都很明显,但是这道题本蒟蒻完全没看出来 思路: 用并查集维护天数,贪心策略是能多晚卖出就多晚卖出,起初每个天数都在它自己的集合里,当我们决定要 阅读全文
posted @ 2021-01-03 22:04 acmloser 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察: 并查集+离散化 错误思路1: 在线处理,每次收到新的命令就判断对错,不知道在线处理能不能行,但是在线有个麻烦的点是要判断这个数字是否在alls里面出现过,如果出现过判断多错,没有就是要新加入关系.并且在线处理还需要标记哪些变量不能相等 错误思路2: 将1~N的数字全部赋值p[i] 阅读全文
posted @ 2021-01-03 20:20 acmloser 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察: 并查集 通过这道题算是把食物链没搞懂的问题又弄明白了点 很明显根据题意我们需要维护一个距离数组,表示父节点到子节点的距离. 当操作是C的时候,我们实际上在进行C操作之前是进行过路径压缩的,因此d[x]的距离变成了x到根节点的距离,d[y]的距离就算y到根节点的距离,因此两者的距离差 阅读全文
posted @ 2021-01-03 14:39 acmloser 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:并查集的基本应用 想到了再建一个敌人数组,但没想到怎么操作...菜是原罪 正确思路: 如果是朋友,我们直接并入一个集合 如果是敌人,我们需要建立一个N叉树,分支是敌人数组的下标,里面的值是根,比如e[5] = 1,表示根为1,分支为5的树,n次操作后,我们会形成一个n叉树,此时我们需 阅读全文
posted @ 2021-01-03 12:27 acmloser 阅读(105) 评论(0) 推荐(0) 编辑