随笔分类 - 贪心
摘要:这道题经常是作为一个搜索题出现的,但是实际上它还用dp或贪心处理搜索后的结果。 来看这道题,题意很好理解,第一问也很好做(从每个第一行的点开始搜,判断整个第一行在第N行上覆盖的点数量是否等于M就好了) 然而,想到这里还不足以解决第二问。 想要解决第二问首先需要明确一个引理:第一行某个点在第N行上覆盖
阅读全文
摘要:每日一题 day57 打卡 Analysis 对于这个问题,由于分成了两个子序列,我们不妨就是枚举一下可能出现的情况: 无非就这两种: 1.+++++0000+++++0000++++ 2.0000++++00000++++000000 0就表示选了这个数,+就表示不选这个数, 那我们正反先做一个普
阅读全文
摘要:每日一题 day47 打卡 Analysis 首先,最终每个小朋友的糖果数量可以计算出来,等于糖果总数除以n,用ave表示。 假设标号为i的小朋友开始有Ai颗糖果,Xi表示第i个小朋友给了第i-1个小朋友Xi颗糖果,如果Xi<0,说明第i-1个小朋友给了第i个小朋友Xi颗糖果,X1表示第一个小朋友给
阅读全文
摘要:每日一题 day46 打卡 Analysis 首先通过题目我们不难发现,为了得到最优解,那么就不能把时间浪费在路上,也就是说不能走回头路。然后很容易可以发现,在每个时刻在不同的鱼塘钓到的鱼的数量是不同的,为了保证钓到最多的鱼,那么我们每次钓都要选当前可以钓到鱼数量最多的鱼塘,钓完之后就更新这个鱼塘的
阅读全文
摘要:每日一题 day45 打卡 Analysis 这道题跟LOJ P10004 一样,但是数据范围不同,不允许O(n²) 的贪心算法通过。 我们可以加一个limit 来判断这个截止期限已经不行了,所以以后出现截止期限<=limit的就不行了。 LOJ上数据很水,这一个小优化就可以通过此题。 1 #inc
阅读全文
摘要:每日一题 day39 打卡 Analysis 1.当正向思考受阻时,逆向思维可能有奇效。 2.问题转化为:找到最小的d,使去掉所有权值>d的边之后,连通支的个数<k; 3.定理:如果去掉所有权值>d的边之后,最小生成树被分割为k个连通支,则图也被分为k个连通支。 1 #include<iostrea
阅读全文
摘要:每日一题 day37 打卡 Analysis 经典的带限期和罚款的单位时间任务调度问题 将 val 从大到小排序,优先处理罚款多的,将任务尽量安排在期限之前,并且靠后,如果找不到,则放在最后面 1 #include<iostream> 2 #include<cstdio> 3 #include<cs
阅读全文
摘要:每日一题 day35 打卡 Analysis 先将不符合条件的区间去掉(即半径小于W,不然宽度无法符合),将符合条件的按区间存入节点中。区间的左边界是x-sqrt(r*r-W*W/4.0),要计算x轴的最小长度,而不是x-r。然后将区间按照左边界从小到大排序,依次找到能够覆盖L点的最大右端点。 1
阅读全文
摘要:每日一题 day34 打卡 Analysis 这道题的正解本来是树形dp,但要设5个状态,太麻烦了。于是我就用贪心试图做出此题,没想到还真做出来了。 考虑当前深度最大的叶子结点,你肯定要有一个消防局去覆盖它, 那么既然他是叶子结点,所以与他距离小于等于2的节点有这么 他的父亲 2. 他的兄弟 3.
阅读全文
摘要:Analysis 题意虽然说先去谁家再去谁家,但是我们不需要管这个,因为AA、BB、CC三个点我们可以任意互相交换它们所代表的对象,所以题目要求的就是在一棵树上找到3个点AA、BB、CC令AB+BCAB+BC最大,同时要满足AC>ABAC>AB。 由于这是一棵树,它满足非常可爱的性质,就是如果找一个
阅读全文
摘要:每日一题 day18 打卡 Analysis 贪心 假如小A先选最大的[5,4],虽然电脑必须选一个破坏, 我们可以理解为5和4都属于小A的,假如后面未被破坏的最大值无论是和5相关还是和4相关,必然还是属于小A先手。 写个极限情况,假设6个武将的最大值序列依次为[1,2],[3,4],[5,6],电
阅读全文