摘要: "Description" 思路 显然,如果一个团队所有人里面会的算法都不完全一样,那么肯定存在一个看不起所有人的人(会得最多或会得最偏)。因此一个团队至少有两个人会的算法一模一样(即a值一样)。同时,如果有一个人在一个团队,那么会的题和他相当或比他少(是他的子集)的人也可以加入这个团队。 当然,团 阅读全文
posted @ 2020-04-14 23:16 limil 阅读(91) 评论(0) 推荐(0) 编辑
摘要: "Description" 思路 这E题有点暴力 由于不同的gcd(u, v)的个数不会超过$log_2V$,V是树上最大的数,所以每个结点开个数组,保存从根节点到该节点的所有gcd值。暴力搞就好了。 阅读全文
posted @ 2020-04-14 23:01 limil 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 介绍 快速计算多个矩形覆盖区域的面积或者周长。 实现 求面积 oi_wiki的 "扫描线" 解释得很清楚了,就是求每次扫到得底边覆盖的长度乘上高的总和。 主要是代码实现的细节要注意。这里的线段树离散化处理记录一下。 "HDU1542 Atlantis" 阅读全文
posted @ 2020-04-14 22:45 limil 阅读(749) 评论(0) 推荐(1) 编辑
摘要: "Description" 思路 板子题,需要离散化。然后从最后一张海报往前枚举看看有没有被完全覆盖。 阅读全文
posted @ 2020-04-14 15:24 limil 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 功能 用$log_2n$时间复杂度对区间进行加减乘求和等等操作的数据结构。 实现 主要参考的是 "oi_wiki" 教程。 记录一下板子(即 "HDU1166 敌兵布阵" 的代码) 注意事项 1. 开4倍空间,再大点更好。 2. 叶结点不要pushdown,否则可能会越界(因为只开了4倍空间) 其它 阅读全文
posted @ 2020-04-14 15:18 limil 阅读(96) 评论(0) 推荐(0) 编辑
摘要: "Description" 题目大意是给定不超过1000个和数(均小于1000)。用m(m using namespace std; typedef long long ll; const int N = 1e3+10; define inf 0x3f3f3f3f int arr[N]; int c 阅读全文
posted @ 2020-04-14 13:18 limil 阅读(180) 评论(0) 推荐(0) 编辑
摘要: "Description" 思路 做法一:组合数学 操作分三步,前两步选孩子再选礼物,最后一步再选孩子。 因此求出两步内选到礼物i的概率,再乘上想要礼物i的孩子的占比,求和所有礼物的结果就是答案。 阅读全文
posted @ 2020-04-14 12:06 limil 阅读(171) 评论(0) 推荐(0) 编辑
摘要: "Description" 思路 题目大意是给定字符串s和c,要求交换s中至多两个字符,使得s字典序严格小于c。如果不存在输出“ ”,否则输出交换后的s。 一开始总想着分类讨论。但是情况实在太多,写不过来。 后面看别人代码才知道应该先找到s交换两个字符后最小的字典序,然后再和c对比即可。 详见代码。 阅读全文
posted @ 2020-04-14 11:59 limil 阅读(204) 评论(0) 推荐(0) 编辑
摘要: "Description" 思路 首先,求最大的最小值中的最大值本质是求最大值。 考虑用二分来枚举最大值是多少。假设枚举出了v,判断v是否可行。 将一行当中大于等于v的数设为1,小于v的数设为0。假设存在两行的01串可以互补成全1的串,说明存在最大值至少大于等于v,即v可行;反之不可行。 由于行数有 阅读全文
posted @ 2020-04-14 11:56 limil 阅读(131) 评论(0) 推荐(0) 编辑