![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分、三分
lemondinosaur
转圈圈 不停转圈圈 然后摔倒
展开
-
2019.12.07【NOIP提高组】模拟A 组
JZOJ 3918 蛋糕题目把一个矩阵横切三刀,竖切三刀,问当中的子矩阵总和最小的最大能是多少分析首先相当暴力的方法就是暴力切的位置然后用前缀和,时间复杂度应该是O(n6)O(n^6)O(n6),但是这个东西是二分的套路,考虑二分答案,首先竖切三刀,然后O(n)O(n)O(n)判断,只要能分成4段或以上即为合法代码#include <cstdio>#include &...原创 2019-12-13 22:06:23 · 257 阅读 · 0 评论 -
#整体二分,树状数组#洛谷 3250 JZOJ 4450 网络
题目分析考虑整体二分,对于操作0在树上差分,用树状数组实现,预处理qqq个询问的Lca\text{Lca}Lca,然后对于操作2,若满足当前修改操作都符合子树里的增加,那么放在左边,否则放在右边;对于操作0、1,若重要度小于等于midmidmid,选择左区间,否则树上差分并选择右区间,但是最后修改操作要撤销,时间复杂度O(qlog2n)O(qlog^2n)O(qlog2n)代码#inc...原创 2019-11-10 20:39:48 · 161 阅读 · 1 评论 -
#主席树,二分,树状数组#洛谷 2617 Dynamic Ranking
TLE分块题解题目区间第kkk大支持单点修改分析如果没有修改操作,就真的只是一道主席树裸题,但是加上修改操作,就不得不使用树状数组维护,其实思路比较简单,主要考验码题能力 (在这一点我是最菜的呀)代码#include <cstdio>#include <cctype>#include <algorithm>#define rr regis...原创 2019-10-28 21:49:48 · 102 阅读 · 0 评论 -
#主席树、二分、树状数组#洛谷 3157 JZOJ 2287 动态逆序对
题目分析首先如果不带修改操作那么就是一道主席树题目,但是既然有了修改,那么还必须用上树状数组维护,时间复杂度O(nlog2n)O(nlog^2n)O(nlog2n)代码#include <cstdio>#include <cctype>#include <algorithm>#define rr registerusing namespace...原创 2019-10-28 21:45:35 · 92 阅读 · 0 评论 -
#主席树,二分#洛谷 2839 JZOJ 2902 middle
题目给你一个长度为nnn的序列sss。回答QQQ个这样的询问:sss的左端点在[a∼b][a\sim b][a∼b]之间,右端点在[c∼d][c\sim d][c∼d]之间的子序列中,最大的中位数。其中a<b<c<da<b<c<da<b<c<d。分析代码#include <cstdio>#include <c...原创 2019-10-24 21:32:04 · 162 阅读 · 0 评论 -
#二分,主席树#洛谷 2468 粟粟的书架
题目给出一个矩阵,问一个子矩阵中至少要多少个数才能使和≥h\geq h≥h,多组数据,分成1≤r,c≤200和r=1,1≤c≤5000001\leq r,c\leq 200和r=1,1\leq c\leq 5000001≤r,c≤200和r=1,1≤c≤500000分析这显然是一道以二分为核心的题目,但是这道题目二合一,对于r≠1r\neq 1r=1维护二维前缀大于等于某个值的数量以及...原创 2019-10-24 20:58:53 · 120 阅读 · 0 评论 -
#二分#洛谷 4403 秦腾与教学评估
题目分析二分答案,那么如果区间不超过该点的答案为单数,说明答案在左边(或自己),否则答案在右边,然后首先要判断是否无解代码#include <cstdio>#include <cctype>#define rr register#define min(a,b) ((a)<(b)?(a):(b))using namespace std;typede...原创 2019-04-07 11:47:12 · 112 阅读 · 0 评论 -
2019.04.13【NOIP提高组】模拟 A 组
解题报告前言JZOJ 3169 生产汽车题目分析代码JZOJ 3170 挑选玩具题目分析代码JZOJ 3171 洛谷 4594 重心[题目](https://www.luogu.org/problemnew/show/P4594)[分析+代码](https://www.luogu.org/paste/cwuaw5vf)前言水分警告JZOJ 3169 生产汽车题目nnn个工人,mmm辆汽...原创 2019-04-17 17:36:33 · 175 阅读 · 0 评论 -
2019.07.09【NOIP提高组】模拟 A 组
解题报告JZOJ 3337 wyl8899的TLE题目分析代码JZOJ 3338 法法塔的奖励题目分析代码JZOJ 3339 wyl8899和法法塔的游戏题目分析代码JZOJ 3337 wyl8899的TLE题目可以最多修改字符串AAA的一个字母,若AAA长度为kkk的前缀是BBB的子串,问kkk的最大值分析枚举公共子串在BBB中的起始位置,二分在完全相同的情况下最长能延长到哪里,因为...原创 2019-07-09 22:27:39 · 152 阅读 · 0 评论 -
#斜率优化,单调队列,动态规划,二分#bzoj 2726 任务安排3
题目参考任务安排1和任务安排2,还有一点−512&lt;T[i]&lt;512−512&lt;T[i]&lt;512-512TTT的值改变了,所以S+SUMT[I]S+SUMT[I]S+SUMT[I]就不再具有单调性,所以必须得用二分求出最优解代码#include &lt;cstdio&gt;typedef long long ll; int n,s,q[300001]原创 2018-08-22 18:54:37 · 309 阅读 · 0 评论 -
#二分,RMQ#jzoj 1372 与众不同
题目求区间[l...r][l...r][l...r]数字互不相同的最长序列(完美序列)的长度(example:2 5 4 2可取2 5 4或5 4 2)分析一开始想的很简单,后来听取WA声一片,RMQ,首先先用一个last数组表示出现数字的上一个位置(因为有负数,所以程序上用了map),st数组表示区间[1...x][1...x][1...x]的完美序列的起始点,st[x]=max...原创 2018-07-06 16:31:05 · 710 阅读 · 3 评论 -
#莫比乌斯反演,整除分块,线性筛,二分答案#bzoj 2440 jzoj 2475 洛谷 4318 完全平方数
题目求第kkk个没有完全平方数因子的数(自动忽略1)分析然而可以发现,若要这样去找,那么莫比乌斯函数不能为0,那么也就是说二分查找一个区间[1…n][1\dots n][1…n]使其中的符合要求的数≥k\geq k≥k,且nnn最小,那么具体的判断过程可以用整除分块解决。Ans=∑i=1i2≤n⌊ni2⌋∗μ(i)Ans=\sum_{i=1}^{i^2\leq n}\lfloor\fra...原创 2018-10-16 17:52:19 · 167 阅读 · 0 评论 -
2018.12.08【NOIP提高组】模拟B组
迟到的解题报告JZOJ 5123 diyiti分析代码JZOJ 100042 保留道路代码JZOJ 5123 diyitibzoj 4927 链接分析6根木棍,只能是3+1+1+1或者是2+2+1+1,所以分类讨论。(以下其它情况都排除了之前的情况,也就是容斥,为了行文方便,在此不多写)设边长为xxx(i×2i\times2i×2代表i和ii和ii和i)2+2+1+1的组合方式...原创 2018-12-13 18:27:05 · 197 阅读 · 0 评论 -
2019.01.18【NOIP提高组】模拟 B组
解题报告前言JZOJ 3027 计算系数题目分析JZOJ 3025 选择客栈题目代码JZOJ 3028 聪明的质检员分析代码JZOJ 3029 观光公交分析后续前言前三题相对于第四题来说比较简单,NOIP2015提高组JZOJ 3027 计算系数题目给定一个多项式(ax+by)k(ax+by)^k(ax+by)k,请求出多项式展开后xnymx^ny^mxnym项的系数。分析根据二...原创 2019-01-18 19:35:12 · 153 阅读 · 0 评论 -
2019.03.30【NOIP提高组】模拟 A 组
解题报告前言JZOJ 3187 洛谷 3076 的士分析JZOJ 3188 找数题目分析代码JZOJ 3189 解密题目分析代码前言爆零警告JZOJ 3187 洛谷 3076 的士分析玄学贪心,就不放代码了JZOJ 3188 找数题目找出第N个最小素因子是P的正整数分析首先在p>=1000p>=1000p>=1000时暴力即可,在之前可以...原创 2019-04-17 18:08:27 · 149 阅读 · 0 评论 -
2019.03.16【NOIP提高组】模拟 B 组
解题报告JZOJ 1284 病毒题目大意分析代码JZOJ 1285 奶酪厂(题目过水)JZOJ 1286 太空电梯题目分析代码JZOJ 1287 躲雨题目分析代码JZOJ 1284 病毒题目大意选择一些二进制数,使它们的或值二进制1的个数不超过kkk并使选择的个数最大分析可以反其道而行,用sum[t]sum[t]sum[t]表示二进制为ttt时,选择某头牛的二进制与ttt没有交集的个数...原创 2019-04-26 21:53:05 · 118 阅读 · 0 评论 -
#0/1分数规划,SPFA,负环#洛谷 1768 天路
题目链接分析可以发现,这是一道0/1分数规划的题目,需要二分答案,然后判定是否存在负环,所以说bfs貌似不高效,那就用dfs吧,若二分答案为0,即不合法代码#include <cstdio>#include <cctype>#include <cstring>#define rr registerusing namespace std;st...原创 2019-04-27 08:18:00 · 181 阅读 · 0 评论 -
#分块,二分#洛谷 2801 教主的魔法
题目支持两个操作:在区间[l∼r][l\sim r][l∼r]增加xxx在区间[l∼r][l\sim r][l∼r]查询≥x\geq x≥x的个数分析第二个操作太困难了,所以说尝试分块,在块内排序,二分答案,块外暴力,对于块内的区间加,可以加上懒标记,二分时减掉这个数代码#include <cstdio>#include <cctype>#incl...原创 2019-05-17 19:10:33 · 116 阅读 · 0 评论 -
#zkw线段树,二分,动态规划#洛谷 2605 JZOJ 1587 基站选址
题目分析首先我们在最后加上一个无限远的虚拟村庄,以避免最后一个村庄没有被考虑,接着设f[i][j]f[i][j]f[i][j]表示前iii个村庄安放jjj个基站,其中第iii个村庄安放一个基站的最少费用显然状态转移方程为f[i][j]=min{f[k][j−1]+cost[k][j]}+c[i]f[i][j]=min\{f[k][j-1]+cost[k][j]\}+c[i]f[i][j]...原创 2019-08-08 08:31:23 · 170 阅读 · 0 评论 -
2019.08.23【NOIP提高组】模拟 A 组
解题报告洛谷 1527 JZOJ 2908 矩阵乘法题目分析代码JZOJ 3410 Tree题目分析代码JZOJ 3682 CF429E Points and Segments题目分析代码洛谷 1527 JZOJ 2908 矩阵乘法题目给定一个矩阵,多组询问子矩阵的第kkk大,不带修改分析这是一道整体二分的好题,以矩阵的n2n^2n2为值域,用二维树状数组记录≤mid\leq mid≤...原创 2019-08-23 18:08:40 · 149 阅读 · 0 评论 -
2019.08.20【NOIP提高组】模拟 A 组
解题报告BZOJ 5442 Global Warming题目分析代码洛谷 5307 Mobitel题目分析代码BZOJ 5443 Lottery题目分析代码Not endingBZOJ 5442 Global Warming题目给定整数nnn和xxx,以及一个大小为nnn的序列aaa。你可以选择一个区间[l∼r][l\sim r][l∼r],然后令a[i]+=d(l≤i≤r)a[i]+=...原创 2019-08-20 22:13:02 · 149 阅读 · 0 评论 -
#0/1分数规划,二分,树上背包,DFS序#洛谷 4322 JZOJ 4512 BZOJ 4753 最佳团体
题目分析那么考虑二分答案,那么每个也就变成选择一群合法的招募人,使其和不少于0然而O(n3)O(n^3)O(n3)会超时所以需要维护dfs序优化,时间复杂度O(n2)O(n^2)O(n2)代码#include <cstdio>#include <cctype>#include <cstring>#define rr registerusi...原创 2019-08-21 17:39:50 · 210 阅读 · 0 评论 -
#哈希#SSL 1125 集合
题目求两个集合的关系分析:c++ map大法 快排+二分 哈希 比较时间 首先如果答案和两个数组的数据个数相等为同一个集合 如果和第一个相等 B包含与A 和第二个相等 A包含于B 有答案说明交集不为空 否则有交集confusedmap(622ms)代码#include &lt;cstdio&gt;#include &lt;cctype&gt;#i原创 2018-03-01 15:38:12 · 262 阅读 · 0 评论 -
2019.01.20【NOIP提高组】模拟 B 组
严重迟到的解题报告JZOJ 4229 学习神技题目分析代码JZOJ 4230 淬炼神体题目分析代码JZOJ 4229 学习神技题目等比数列求和分析那么这个直接套公式就好了,等比数列的求和公式是运用快速幂和逆元求解代码#include <cstdio>#include <cctype>#define rr registerusing namespac...原创 2019-01-25 11:56:33 · 183 阅读 · 0 评论 -
2019.01.25【NOIP提高组】模拟 B 组
tarjan太强了JZOJ 3894 洛谷 3365 改造二叉树题目分析代码JZOJ 3895 数字对题目分析代码JZOJ 3896 战争游戏 洛谷 3469 bzoj 1123 BLO-Blockade题目分析代码后续JZOJ 3894 洛谷 3365 改造二叉树题目把一棵二叉树变为二叉查找树最少要修改多少个节点分析代码JZOJ 3895 数字对题目分析代码JZ...原创 2019-01-25 21:39:23 · 272 阅读 · 0 评论 -
2018.01.30【NOIP普及组】模拟赛D组
&_&(看我深邃的眼神就知道了一切)JZOJ NO.1 【2018.1.30普及组模拟】二项式展开式题目大意:展开一个二项式。题目分析:拆开后每个单项式的系数为C(n,i),a的次数为n-i,b的次数为i我居然错了,请看我改后的AC代码#include <cstdio>#define ull unsigned long long...原创 2018-01-31 08:12:26 · 213 阅读 · 0 评论 -
2018.01.27【GDOI2018】模拟C组
这套题我考得不错JZOJ NO.1 香烟简单的纯模拟。#include <cstdio>using namespace std;int n,m,ans;int main(){ scanf("%d%d",&n,&m); ans=n;//首先答案为香烟数 while (n/m){//如果可以换香烟蒂头 ans+=...原创 2018-01-30 08:14:54 · 198 阅读 · 0 评论 -
2018.01.27【NOIP普及组】模拟赛D组
这一次的题目比28,26难了很多。JZOJ NO.1【2014.10.18普及组】反射首先这道题我是栈溢出。所以深搜我改为while (true){ }#include <cstdio>using namespace std;int n,ans,m; char a[1001][1001];int main(){ freopen("mirro...原创 2018-01-29 07:54:40 · 421 阅读 · 0 评论 -
#二分#poj 2018 Best Cow Fences
题目给定一个正整数序列,求一个平均数最大且长度不小于L的子段分析可以二分答案,把它转换为子段和非负且长度不小于L的子段,不过可以实时维护子段和(前缀和)的最小值,使总长度减答案最大。代码#include <cstdio>using namespace std;int n,q,a[100001]; double s[100001];int in(){...原创 2018-08-14 19:35:48 · 224 阅读 · 0 评论 -
#哈希#ZJU 1101 赌徒
题目把一个数列的三个数加起来等于数列中的另一个数,使和最大。分析 a[x1]+a[x2]+a[x3]=a[x]a[x1]+a[x2]+a[x3]=a[x]a[{x1}]+a[{x2}]+a[{x3}]=a[x] 转换成 a[{x1}]+a[{x2}]=a[x]-a[{x3}]首先这道题普通模拟O(n4n4n^4)必然超时,so我们用二重循环算出任意两数之和...原创 2018-03-08 19:50:15 · 143 阅读 · 0 评论 -
#离散,二分#洛谷 1439 【模(mú)板】最长公共子序列
题目:求最长公共子序列分析:首先dp,(n^2),不可取。 然后就要想,怎样优化? 首先我们把第一个序列离散化。 和第二个串匹配,然后我们发现公共子序列满足上升,所以就是求最长上升子序列。代码:#include <cstdio>#include <cctype>#include <map>using names...原创 2018-02-23 21:44:58 · 500 阅读 · 0 评论 -
#二分# (洛谷 3道题二分答案)1843 1873 2440 木材加工 砍树 奶牛晒衣服
上一次讲了两道例题,这一次就再讲3道题。上次说过分为最小值最大和最大值最小 2440木材加工,最小值最大 “最小值的最大长度”代码如下#include <cstdio>#include <algorithm>using namespace std;int l,r,n,m,a[100001]; long long sum;int main(){...原创 2018-01-25 00:52:08 · 290 阅读 · 0 评论 -
#二分#(洛谷 1824)进击的奶牛
二分答案其实就是丢瓶盖最小值最大具体请看http://blog.csdn.net/sugar_free_mint/article/details/79114637 然后其实道理是相通的。 最小值:最小距离 最大值:最大距离 检验部分:看能拿几个瓶盖#include <cstdio>#include <algorithm>#define A ...原创 2018-01-21 13:09:05 · 663 阅读 · 0 评论 -
#二分#(两道二分标致题)(洛谷 1182 1316)数列分段Section II 丢瓶盖
今天就稍微讲一下二分二分主要就是运用于查找,最小值最大和最大值最小 其中后面两种就是我们今天要讲的。(二分答案)伪代码while (l&lt;=r){ int mid=(l+r)&gt;&gt;1; if (check(mid)) l=mid+1; else r=mid-1; } 当最小值最大时输出r否则输出l 然后其实最重要的是初值和...原创 2018-01-21 09:10:13 · 320 阅读 · 0 评论 -
#二分,单调队列,动态规划#洛谷 3957 跳房子
题目分析f[i]表示跳到i时的最大值f[i]表示跳到i时的最大值f[i]表示跳到i时的最大值,很容易可以得到 f[i]=max{f[last]}+s[i]f[i]=max{f[last]}+s[i]f[i]=max\{f[last]\}+s[i],然而也很容易知道需要用单调队列维护,但是求到答案又能怎么做,二分答案,于是代码就出来了。代码#include &l...原创 2018-07-16 16:20:44 · 237 阅读 · 0 评论 -
二分、三分专题
算法专题前言二分三分洛谷 3382 【模板】三分法题目分析代码洛谷 2600 JZOJ 1721 瞭望塔题目分析代码前言对于这两种算法,往往会配上其它算法未完待续二分三分洛谷 3382 【模板】三分法题目给出一个NNN次函数,保证在范围[l,r][l,r][l,r]内存在一点xxx,使得[l,x][l,x][l,x]上单调增,[x,r][x,r][x,r]上单调减。试求出xx...原创 2019-03-25 18:21:19 · 216 阅读 · 0 评论 -
2019.01.31【NOIP提高组】模拟 B 组
终于AK全场JZOJ 4255 ACM题目分析代码JZOJ 4256 平均数题目分析代码JZOJ 4257 着色题目分析代码JZOJ 4255 ACM题目在一开始,队伍的每一个人会评估每一道题的难度,难度会用1~5的整数表示,数字越大题目越难。然后他们会分配题目给每个人。题目会分成三个部分,每个队员会拿到一个非空的连续的题目代表了他要解决的问题。他们的策略是让难度评估系数最小。难度评估系数是...原创 2019-02-02 18:17:59 · 262 阅读 · 0 评论 -
#分块,二分#zoj 2112 Dynamic Rankings
题目支持修改的区间动态第k小分析树状数组套主席树(主席树不支持单点修改)太麻烦了,所以就用一种虽然时间略长但是比较简短的代码,当然运用到大段维护,小段朴素的方法,具体就是二分答案,其实理解上去还是比较简单的代码#include <cstdio>#include <cmath>#include <algorithm>#defi...原创 2018-09-12 18:09:19 · 159 阅读 · 0 评论 -
#树状数组,二分#poj 2182 Lost Cows
题目排在奶牛前面的奶牛数量实际上比那头奶牛的品牌要小,求奶牛的排序。分析二分+树状数组,倒推,二分求出排列,用树状数组求品牌的数量。代码#include &lt;cstdio&gt;using namespace std;int n,a[8001],c[8001];void add(int x){while (x&lt;=n) c[x]++,x+=(x&amp...原创 2018-06-22 10:51:12 · 233 阅读 · 0 评论 -
2018.07.06【2018提高组】模拟C组
前言:听取WA声一片(爆零了)比赛题目JZOJ 1192 矩阵题目大意矩阵相乘,求最少进行的乘法次数,矩阵A(m∗n)∗B(n∗p)A(m∗n)∗B(n∗p)A(m*n)*B(n*p)的乘法次数为m∗n∗pm∗n∗pm*n*p次。分析不得不说,多虑了,题目说明保证能够相乘,且矩阵乘法不符合乘法交换律,所以邻接表不存在的(害得浪费了一个多小时的时间,还...原创 2018-07-06 21:16:43 · 166 阅读 · 0 评论