二分
__wwwwn
这个作者很懒,什么都没留下…
展开
-
2019牛客暑期多校训练营(第一场)A 递归+rmq+二分||单调栈||笛卡尔树
题意:求最大的q使得 两个区间{a1,a2,…,ap},对于任意的1≤l≤r≤m的rmq下标相等 题解:二分查找p的最大值,然后对于每一个区间首先查询两个区间最小值的下标相等,然后如果相等递归看去掉当前最小值的左右区间是否继续符合 题解2:维护两个单调栈,单调栈的key一定是笛卡尔树的最右链的key,判断单调栈相等就是笛卡尔树相等,其实只要判断单调栈的大小相等就可以,毕竟每个元素的值都是不同的...原创 2019-07-18 21:33:55 · 155 阅读 · 0 评论 -
2019牛客暑期多校训练营(第三场)B 二分+前缀和
题意:输出最长01数目相等的子序列和子串的长度 题解:子序列直接就是较小的那个*2,子串的话二分一下长度,每次用前缀和判一下有没有就可以了 主要是没写过关于偶数单调的二分,记录一下 #include <bits/stdc++.h> using namespace std; #define maxn int(5e5+5) const double eps = 1e-6; cons...原创 2019-07-25 19:40:05 · 127 阅读 · 0 评论 -
A - TOYS POJ - 2318 计算几何+二分
题意:在一个长方形内给你n条直线,m个点,问你每个区间有多少个点 题解:对于每个点二分一下最右边的直线,就正好是这条直线左边区间之内的点。我一开始还想前缀和一下,再减出来,然后发现这两个操作正好抵消了。。。。 #include <iostream> #include <cstdio> #include <cmath> #include <cstrin...原创 2019-07-22 10:43:43 · 142 阅读 · 0 评论 -
2019牛客暑期多校训练营(第六场)D Move 假二分
题意:按照有n个物体按照题意的要求(也就是从大到小尽量放尽量少的盒子),然后最多放到k个容量相等的盒子里 问你盒子的容量最小是多少 题解:首先肯定都想到了二分,但是二分基本上没有过的,这时候就应该考虑到函数不单调,这个题的下是sum/k 所以直接从下界网上枚举就可以 //#pragma comment(linker, "/STACK:1024000000,1024000000") #in...原创 2019-08-03 22:52:22 · 332 阅读 · 2 评论 -
hdu6581 2019 Multi-University Training Contest 1 D Vacation 二分
题意:当前车面前有n辆车,也就是说一共n+1辆车只能排成一排,然后每辆车有s(到停车线的距离),v(最大速度),l(车的长度),问你最快多少时间能让最后一辆车的车头到达停车线 题解: #include <iostream> #include <cstdio> #include <cmath> #include <cstring> #includ...原创 2019-07-22 20:56:15 · 143 阅读 · 0 评论 -
2019 Multi-University Training Contest 4 K-th Closest Distance 二分+主席树
题意:给你n个数,每次查询l,r区间内与p距离第k大的数 题解:二分+主席树(其实用的是权值),每次查询p-mid和p+mid之间的个数是不是k。。。傻逼了数组开小了。。然后查询也查小了,卡了好长时间 #include<iostream> #include<algorithm> #include<cstdio> #include<cstdlib>...原创 2019-08-02 11:44:11 · 110 阅读 · 0 评论 -
2019牛客暑期多校训练营(第九场)H-Cutting Bamboos 主席树+二分
题意:有n个竹子,m个查询,要求每次切割竹子到一定高度,且每次切割的总长度相同,y次切完,问你第x次切割之后的高度是多少 题解:每次切割掉的长度Σai/y,那么第x次切割完,切割掉的总长度应该为Σai*x/y,同时我们可以二分第x次切割完的高度,设二分的高度为h,则切割掉的总长度=高于h的竹子的高度总和-h*高于h的竹子的数量,这个与Σai*x/y相比就可以了 // #pragma comm...原创 2019-09-06 19:23:32 · 223 阅读 · 0 评论