随笔分类 -  二分

摘要:problemsolutioncodes#include#include#includeusing namespace std;int n, k;double a[10000];bool C(double x){ int sum = 0; for(int ... 阅读全文
posted @ 2018-06-03 10:37 gwj1139177410 阅读(119) 评论(0) 推荐(0)
摘要:problem将n个罪犯分别关押进2座监狱每2个罪犯之间有一个冲突值,当他们在同一监狱时就会爆发让爆发的冲突值(最大的那个)最小,求那个最小值solution考虑判定:是否存在一种分配方案,使最大的冲突值不超过mid。当mid较小时的可行方案对于更大的mid一定可行(... 阅读全文
posted @ 2018-06-02 19:38 gwj1139177410 阅读(271) 评论(0) 推荐(0)
摘要:problem一条路上有n个教学评估团,对于每个评估团从s开始每d个站一个人直到e结束现在要找到一个站的人数是奇数的点,这个点可能没有,且至多只有一个问这个点在哪以及这个点站了多少人solution因为最多只有一个点是奇数,所以很显然会想到奇数+偶数=奇数,所以说明这... 阅读全文
posted @ 2018-05-31 21:37 gwj1139177410 阅读(165) 评论(0) 推荐(0)
摘要:1、二分的基本用法是在单调序列或单调函数中进行查找。 2、当问题的答案具有单调性时,就可以通过二分把求解转化为判定(判定一般比求解容易实现。A基本用法(这里都是个人写法,可以跳过1、整数域1)原则最终答案处于闭区间[l,r]内循环以l==r结束每次二分中间值mid归属... 阅读全文
posted @ 2018-05-31 13:21 gwj1139177410 阅读(157) 评论(0) 推荐(0)
摘要:problem一个长度为N的正整数数列A[i]将其分成M段,并要求每段连续求每段和最大值(M段各自的和中最大的那个)最小(某种方案下最小)。solution二分每段和的最大值mid。 如果存在一种划分方案使得每段和为mid成立,就去找更小的。反之找更大的。!!!第4个... 阅读全文
posted @ 2018-05-28 21:18 gwj1139177410 阅读(167) 评论(0) 推荐(0)
摘要:problem给定一个正整数数列A,求一个平均数最大、长度不小于L的子段。solution二分判定:是否存在一个长度大于L,平均数不小于二分值的子段。codes#include#include#include#includeusing namespace std;do... 阅读全文
posted @ 2018-05-25 21:37 gwj1139177410 阅读(123) 评论(0) 推荐(0)
摘要:problemsolutioncodes//二分答案//QAQ注意:起点和终点也是有石头的w#include#include#define maxn 100010using namespace std;int ll, n, m;int a[maxn];bool che... 阅读全文
posted @ 2018-05-22 13:27 gwj1139177410 阅读(120) 评论(0) 推荐(0)
摘要:problem给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序排序分为两种 1:(0,l,r)表示将区间[l,r]的数字升序排序 2:(1,l,r)表示将区间[l,r]的数字降序排序 最后询问第q位置上的数字。solution考虑二分答案 对于mid ... 阅读全文
posted @ 2018-05-18 06:09 gwj1139177410 阅读(146) 评论(0) 推荐(0)

选择