![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分
goto_1600
我何来寂寞,哪有寂寞可言。
展开
-
第十二届蓝桥杯国赛括号线段树
题面:题意:操作1 把区间括号翻转操作2 查询最长合法括号序列序列从l开始思路:类似于区间合并的问题,对于每个区间我们记录左右最小最大前缀值,我们把(看作1,)看作-1,合法的括号序列满足于当前的sum=0且对于任意前缀都是>=0,那么满足二分性质,我们可以二分套线段树查询到从l开始满足前缀大于等于0的最大位置,然后如果下个位置的sum<0那么就是当前位置,但是会有可能是查询到n,然后后面没数了且sum>0,那么我们就要二分出第一个后缀最大值等于sum的位置。调了一下午调的心原创 2021-06-12 16:59:40 · 534 阅读 · 1 评论 -
Gift Set 二分 数学
题意:给定x,y个红,蓝气球,每次可以选择a个红气球,b个蓝气球,或者a个蓝气球,b个红气球,问最多能分成多少组。思路:不妨设a>b,不难发现这个题可以二分,即如果ans = x ,那么对于任意y<x都会存在方案让答案有解 假设第一种方案有k组,那么k要满足又要大于等于0并且小于等于当前组数,然后又有两个柿子生成,ak+b(mid-k)<=x && bk+a(mid-k)<=y,由此可以产生关于k的解,那么题目就转变为给你两个线段,两条线段是否相交。这里有.原创 2021-06-11 17:01:39 · 777 阅读 · 2 评论 -
(算法进阶指南)102. 最佳牛围栏(最大平均数)
解题报告:二分平均值,由于他限定要不小于l长度的平均值,我们可以用个数组记录a[i]减去二分的平均值,如果最大的连续子序列长度大于等于0就l=mid ,由于是浮点数,eps设置为保留位数+2就行了,这题就是5.同时最后要乘以1000,l和r都是满足题意的,因为是最大值用r来*1000下取整就行了,接下来要找最大长度大于等于连续子序列的和,可以i从l开始循环,记录一下i-l前缀和和min,最后每次...原创 2020-04-28 21:48:21 · 475 阅读 · 0 评论 -
113. 特殊排序
第一次做交互题,这种题只需要写一个函数就行了,返回要返回的,我们可以假设前面也排好序了,因为是单调递增的,我们可以二分出来要插入数的位置,二分出比他小的数的位置,然后从后面往前面依次交换放到该位置后面就行了,特判一下如果没有比他小的数,那就把它放到最前面。// Forward declaration of compare API.// bool compare(int a, int b);...原创 2020-04-28 21:43:20 · 300 阅读 · 0 评论 -
三分
解题报告:初学三分,大致思想其实和二分差不多,只不过二分区间是有严格单调的性质的,但是三分的话只能求类似二次函数一样的最值,思路就是把整个区间分为三段,然后比较三分之一点和三分之二点的顶点函数值的大小,然后求最小值,就往小的地方逼近。#include<iostream>#include<algorithm>#include<cstdio>#includ...原创 2020-04-28 10:53:54 · 201 阅读 · 0 评论 -
244. 谜一样的牛
题意:有n只牛,现在他们按一种顺序排好,现在知道每只牛前面有几只牛比自己低,牛的身高是1-n,现在求每只牛的身高解题思路:听了y总的课,他讲的是可以用树状数组+二分做,树状数组维护的是前i个比某头牛小的数量总和,初始状态下我们可以把每个高度都维护一下,千万不要跟我一样把tree数组一个一个变成1,那样是不行的,(没有理解树状数组的含义),简便方法就是tr[i]=lowbit(i),然后从后往前枚...原创 2020-04-18 23:39:22 · 257 阅读 · 0 评论 -
关押罪犯 二分图+二分
链接:https://ac.nowcoder.com/acm/problem/16591来源:牛客网题目描述S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为c 的罪犯被关...原创 2020-04-07 21:53:51 · 290 阅读 · 0 评论 -
二分,
先离线处理所有因子他们对应的位置,只需要找一个值和x gcd就行了,把x因子放进一个数组里,排序,从x到1大到小进行枚举,查找是否存在在l到r之间有个值能满足该因子,存在直接输出答案break。#include<iostream>#include<vector>#include<algorithm>using namespace std;typede...原创 2020-04-06 21:57:34 · 199 阅读 · 0 评论 -
最长上升子序列
如果有人认为吃东西只需要嘴巴,那就错了。都知道舌头有这么一个特性,“由简入奢易,由奢如简难”(据好事者考究,此规律也适合许多其他情况)。具体而言,如果是甜食,当你吃的食物不如前面刚吃过的东西甜,就很不爽了。大宝是一个聪明的美食家,当然深谙此道。一次他来到某小吃一条街,准备从街的一头吃到另一头。为了吃得爽,他大费周章,得到了各种食物的“美味度”。他拒绝不爽的经历,不走回头路而且还要爽歪歪(爽的次...原创 2020-03-31 23:25:53 · 201 阅读 · 0 评论 -
蓝桥训练 二分
问题描述 如果你认为参加一个编程比赛让你感到有压力,那么请你想象你是一个空中交通管制员。因为人命关天,所以一个空中交通管制员必须在时刻变化的环境中专注于任务,解决不可预知的事件。 让我们将目光转向飞机的着陆流程。飞机进入目的地飞航情报区之后,就会报告自己的位置、方向和速度,然后管制员就需要制定计划让所有飞机按指令安全着陆。一般来说,连续的两次着陆之间间隔时间越长,就越安全。因为这些额外的时...原创 2020-03-29 21:32:08 · 267 阅读 · 0 评论 -
acwing 340. 通信线路
在郊区有 N 座通信基站,P 条 双向 电缆,第 i 条电缆连接基站Ai和Bi。特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费Li。电话公司正在举行优惠活动。农产主可以指定一条从 1 号基站到 N 号基站的路径,并指定路径上不超过 K 条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的...原创 2020-03-22 10:21:08 · 283 阅读 · 0 评论 -
机器人跳跃
题目#include<iostream>using namespace std;const int N=100010; int n;int a[N];int max1;bool check(long long t){ for(int i=0;i<n;i++) if(a[i]>t) {t-=a[i]-t; if...原创 2020-02-22 15:32:49 · 351 阅读 · 0 评论 -
二分二分
It is very hard to wash and especially to dry clothes in winter. But Jane is a very smart girl. She is not afraid of this boring process. Jane has decided to use a radiator to make drying faster. But ...原创 2020-01-22 16:19:15 · 199 阅读 · 0 评论 -
Monthly Expense
Farmer John is an astounding accounting wizard and has realized he might run out of money to run the farm. He has already calculated and recorded the exact amount of money (1 ≤ moneyi ≤ 10,000) that h...原创 2020-01-22 00:39:09 · 292 阅读 · 0 评论 -
二分 搬运石头问题
Every year the cows hold an event featuring a peculiar version of hopscotch that involves carefully jumping from rock to rock in a river. The excitement takes place on a long, straight river with a ro...原创 2020-01-22 00:06:06 · 277 阅读 · 0 评论 -
Agressive cows 二分
#include<stdio.h>#include<iostream>#include<algorithm>#include<stdlib.h>#include<string.h> int n,c;using namespace std;int a[100005];bool check(int m){ int las...原创 2020-01-19 19:57:11 · 254 阅读 · 0 评论 -
二分 找区间
题目:S1 = 1S2 = 12S3 = 123S4 = 1234…S9 = 123456789S10 = 1234567891S11 = 12345678912…S18 = 123456789123456789…现在我们把所有的串连接起来S = 1121231234…123456789123456789112345678912…那么你能告诉我在S串中的第N个数字是多少...原创 2020-01-19 14:39:43 · 302 阅读 · 0 评论