![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分
清泠,
慢慢成长的小白白,
展开
-
Codeforces Round #651 (Div. 2)
这里写下ABCDE吧,这次思路感觉不是怎么很明确传送门A. Maximum GCD主要思路:n/2即可解题思路:由于让求1 <= x < y <= n, 求 max(gcd(x,y)), 那么如果x = k, 那么最大情况, y = 2k, 这样他们的最大公约数就为k因此最大值就是n / 2(倍数关系,二倍是最小的)代码:#include <iostream>#include <cstdio>#include <cstring.原创 2020-06-23 11:36:25 · 329 阅读 · 3 评论 -
Codeforces Round #645 (Div. 2)
这次DIV2 有点难搞,这里补一下CD题,感觉自己做难题的速度还是不太行传送门C题解题思路:首先C题可以自己先瞎推推,首先要写一下,不能盲目的猜,因为路径和里有相同的数(自己举例一下就好)然后其中可以满足的数目其实就是路途上的数的和的 最大值 - 最小值 + 1, 这个应该好理解吧。然后我们求最大值最小值的差值即可,最大值是先向下走,再向右走,最小值是先向右走,再向下走(这个规律还是比较容易发现的),如果想单纯的直接累加求肯定是爆掉的,然后找他们之间的规律。首先我们看下图,图.原创 2020-05-27 23:04:24 · 219 阅读 · 0 评论 -
每日一题 — 2020 - 05 - 09
今天多题又是二分,不过自己又不知道,为啥看不出啥二分呢,唉,看来还是要多做题题目链接解题思路首先没看出来是二分,首先我们了来想一下为啥是二分二分的时间复杂度是logn,r大概是1e14,那么二分可以解决,二分答案还是做题少,不太知道怎么分析好这里的l是a中的最大值,r就是他们的合,然后直接套二分板子,然后我们判断分成几段即可代码:#include #include #include using namespace std;const int N = 100010;long l.原创 2020-05-09 23:31:22 · 137 阅读 · 0 评论 -
每日一题 — 2020 - 04 - 23
题目链接这题自己不会,但是大体知道知识点,回去还需要好好思考一下才行,感觉最近不是dfs就是二分解题思路:这个题应该解法挺多,不过想用二分来试试,最近二分挺多的。首先二分需要满足单调性,这里我们肯定要先求出前缀和,然后我们发现的规律是,当前的前缀和,只要前面有个点的前缀和小于他,那么这一块就满足。数据范围那么大,不是O(n) 就是O(nlogn),二分答案的话肯定是nlogn,不过...原创 2020-04-23 16:16:39 · 132 阅读 · 0 评论 -
每日一题(牛客)— 2020 - 04 - 22
题目链接二分答案,一脸懵逼,感觉大佬都太强了,自己都想不到,看了大佬们的代码,学习了一下思想和知识点(二分没错,今天又进新坑)解题思路:首先这个二分就很不好想(对于自己),这个二分,他求的是对于一个数 x, 有多少个符合条件满足的,如果满足的个数 res >= m, 那么这个 x 肯定是选取小了,否则就是选取大了。然后我们如何去控制他的左右边界,这里看大佬的代码学到个技巧,让他...原创 2020-04-23 11:57:04 · 157 阅读 · 0 评论 -
每日一题 — 2020 - 04 - 18
感觉自己又菜了,首先二分答案没看出来,然后二分的时候,漏掉左边界是0,太菜了。题目链接解题思路:直接二分答案,l = 0 , r = 1e9然后判断条件时,我们要左取右不取(根据实际情况来,我这块理解的也不是很好)然后直接输出l就OK主要还是多做些二分的题代码:#include <iostream>#include <cstdio>using...原创 2020-04-18 15:15:35 · 85 阅读 · 0 评论 -
AcWing 1227. 分巧克力
题目链接 解题思路:给予 n 块巧克力,最少分为 k 块(完全相同的正方形),求最大的边长。对于每一块巧克力,设定 长为 h,宽为 w,我们如果要切变长为 x 的正方形,那么我们最多切(h / x) * (w / x) 所以我们只需要将 n 块巧克力的计算值相加 判断是否大于等于 k 即可。因此利用二分来找 x 的值。 代码:#include <cstdio...原创 2020-02-03 12:39:36 · 240 阅读 · 0 评论 -
四平方和 —— AcWing 1221
题目链接 解题思路:1. 首先可以用暴力(暴力耗时最少),直接三重 for 循环。2. 正常解法是二分,首先我们先求出c ,d (a , b也可),然后将符合条件的存入结构体中,进行排序,然后再求出 a , b 然后计算出 t = n - a* a - b * b ,查找结构体中是否存在符合 t 的数,如果存在进行输出。 代码:#include <cmath>...原创 2020-02-03 12:24:59 · 260 阅读 · 0 评论 -
机器人跳跃问题 —— AcWing 730
题目链接 解题思路:有n + 1 座建筑,机器人从第一座建筑开始,能量为 E ,然后跳到下一座建筑,如果建筑的高度 hi 小于能量值E ,那么能量值将会增加 ( E - hi ),否则降低 ( hi - E )。因此综合式子为(2 * E - hi )。对于每一个选值, 可以进行遍历查询是否符合要求,如果遍历过程中出现 E < 0,那么一定不符合要求,直接返回 false , ...原创 2020-02-03 11:18:17 · 222 阅读 · 0 评论