分治
文章平均质量分 55
分而治之
wind__whisper
qwq
展开
-
CF1654E Arithmetic Operations(根号分治)
根号分治原创 2022-04-08 22:54:16 · 440 阅读 · 0 评论 -
P4849 寻找宝藏(模板:四维偏序)
cdq套cdq原创 2022-03-25 14:46:02 · 243 阅读 · 0 评论 -
洛谷P2056:[ZJOI2007]捉迷藏(点分树、STL)
点分树练习+一个STL的小trick原创 2022-01-15 00:14:12 · 181 阅读 · 0 评论 -
P4169 [Violet]天使玩偶/SJY摆棋子(CDQ分治、暴力)
通过暴力分情况转化为三维偏序问题原创 2021-12-12 22:11:16 · 343 阅读 · 0 评论 -
模板:CDQ分治
CDQ分治是一种代码较为简单的神奇离线思想原创 2021-12-12 22:04:22 · 256 阅读 · 0 评论 -
洛谷P4292:重建计划(点分治、单调队列)
点分治一道很好的练习题原创 2021-12-04 00:39:00 · 226 阅读 · 1 评论 -
模板:点分治&点分树
点分治:小清新轻算法原创 2021-12-02 00:03:34 · 171 阅读 · 0 评论 -
P2305 [NOI2014] 购票(点分治、斜率优化)
利用点分治解决树上的斜率优化问题原创 2021-12-04 17:39:31 · 262 阅读 · 0 评论 -
NOIP2020&洛谷P7115:移球游戏(分治)
解析先考虑n=2的情况可以利用一个空队在不超过5m的操作次数下把两个满队还原如何推广?考虑分治把[l,mid]的球看成同色,[mid+1,r]的球看成同色在左右两两匹配柱子进行n=2的还原操作最后在递归处理操作次数:5mnlogn代码#include<bits/stdc++.h>using namespace std;#define ll long longconst int N=2e6+20000;const int mod=998244353;inline ll原创 2021-10-19 20:21:31 · 1125 阅读 · 0 评论 -
YBTOJ:圈套问题(分治法、鸽笼原理)
文章目录题目描述数据范围解析代码图片转载自:https://blog.csdn.net/weixin_43346722/article/details/118435430题目描述平面上有 n个点,用n个大小相同的圆分别将一个点作为圆心,同时满足圆圈不相交,求圆的最大半径。数据范围2<=n<=2e52<=n<=2e52<=n<=2e5解析把题目抽象一下就是求最小的一对点的距离除以2考虑如何求呢?暴力当然是会T飞的首先把所有点按x排序然后考虑分治分治的原创 2021-09-23 10:51:35 · 220 阅读 · 0 评论 -
YBTOJ:向量问题(线段树分治、凸包)
文章目录题目描述数据范围解析代码题目描述你要维护一个向量集合,支持以下操作:插入一个向量 。删除插入的第 x 个向量。查询当前集合与(x,y)(x,y)(x,y) 点积的最大值是多少。如果当前是空集输出0。数据范围n<=2e5,x、y∈[1,2e6]n<=2e5,x、y∈[1,2e6]n<=2e5,x、y∈[1,2e6]解析考虑作当前向量的垂线,该线自上而下平移截得的第一个向量对应的点就是答案如果本题没有删除操作,可以利用一个凸包来维护但是如何支持删除呢?考虑原创 2021-09-23 09:41:02 · 117 阅读 · 0 评论 -
YBTOJ:斐波拉契(矩阵快速幂)
文章目录题目描述题目描述代码题目描述题目描述关键在于如何转化为本题的题目。。。设y=(1-根号5)/2$$再令:A(n)=xn +++ yn通过尝试可以发现,A其实就是一个1,3为前两项的斐波拉契数列则xn=A(n)-ynA的值可以用矩阵快速幂来求而y是在(-1,0)的区间所以分一下n的奇偶性,就可以求出答案了代码#include<bits/stdc++.h>using namespace std;#define ll long longcons原创 2021-08-01 18:20:02 · 127 阅读 · 0 评论 -
分羊(区间dp:分治与决策单调性优化)
文章目录题目描述样例输入样例输出解析代码题目描述给你一个数列,分成m段,每段的价值为相同数对的对数求最小价值和样例输入10 21 2 1 2 1 2 1 2 1 2样例输出8解析容易想到区间dp定义dp[i][j]:把前i个数分成j段的最小价值那么枚举最后一段断点的位置,转移就是:dp[i][j]=min(dp[i][j],dp[k][j-1]+calc(k+1,i)(1<=k<i)不难发现本题是符合决策单调性的就可以利用这个进行优化啦使用分治思路原创 2021-06-12 15:51:16 · 102 阅读 · 0 评论 -
不止代码:生日欢唱(ybtoj-区间dp)
文章目录题目描述解析代码thanks for reading!题目描述解析'这题挺好的思路:dp[i][j]表示必须把i和j配对,可达到的最大值首先:dp[i][j]=dp[i-1][j-1]+a[i]*b[j];然后可以分别尝试把男生或女生往前放弃一段:for(int k=i-1;k>=1;k--){//男不要k到i-1 dp[i][j]=max(dp[i][j],dp[k-1][j-1]+a[i]*b[j]-(suma[i-1]-suma[k-1])*(suma[i-原创 2021-04-24 18:50:56 · 145 阅读 · 0 评论 -
不止代码:恐狼后卫(ybtoj-区间dp)
文章目录题目描述解析代码thanks for reading!题目描述一代炉石的眼泪啊解析用dp[i][j]表示i与j之间的全部消掉(不含两端)的最小花费然后枚举中间最后杀死的狼就行了本题没有一次AC,因为一开始dp定义成了包含两端,然后因为还受再外面的影响,写的很乱一次不成后经过思考,啊哈! 正解思路就诞生了所以寻找适用与题目的dp定义非常重要正如之前的积木消消乐一样代码#include<bits/stdc++.h>#define ll long long#def原创 2021-04-24 17:47:50 · 201 阅读 · 0 评论 -
不止代码:循环比赛(分治)
循环比赛日程表(match)【问题描述】解析dfs或分治分治可以不断递归4个小正方形左上右下为前一半,左下右上后一半dfs就很无脑了代码#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<iostream>#define ll long long#define mem(a,b) memset(a,b,sizeof(a))原创 2021-03-30 21:02:29 · 70 阅读 · 0 评论 -
不止代码:乘法游戏 题解(区间dp)
题目描述乘法游戏是在一行牌上进行的。每一张牌包括了一个正整数。在每一个移动中,玩家拿出一张牌,得分是用它的数字乘以它左边和右边的数,所以不允许拿第1张和最后1张牌。最后一次移动后,这里只剩下两张牌。你的目标是使得分的和最小。解析区间dp定义dp[i][j]是把i j 之间所有数去掉的代价最小值那么显然:if(j==i+1) return 0;而当ij中有数时,我们可以枚举i j之间取的最后一个数的位置k显然: i<k<j那么这个过程就是把i k之间的书都取完再把k j之间的原创 2021-03-11 20:12:27 · 376 阅读 · 0 评论 -
模板:线段树
文章目录引言思想模板建树单点修改 / 查询区间修改/查询总结练习引言有一类题目:要求在区间上维护信息,比如带修改区间求和问题。考虑到枚举求和肯定会超时,我们可以通过一些数据结构来维护信息,例如线段树。它功能强大,支持区间求和,区间求最值、区间修改等一系列操作。思想线段树,是一种二叉搜索树(即每个结点最多有两棵子树,通常叫做左右子树)。它将一段区间划分为若干单位区间,每一个节点都储存着一段区间[L,R]的信息,其中叶子节点L=R。它的大致思想是:将区间[1,n]平均分成2个小区间,再将小区间平均原创 2021-03-01 14:40:25 · 133 阅读 · 0 评论 -
震惊!快速幂怎么编?省一说暴力,银牌说递归,国集听完笑了
题目描述给你三个整数 b,p,kb,p,kb,p,k,求 bp mod kb^p \bmod kbpmodk。输入格式输入只有一行三个整数,分别代表 b,p,kb,p,kb,p,k输出格式输出一行一个字符串 b^p mod k=s,其中 b,p,kb, p, kb,p,k 分别为题目给定的值, sss 为运算结果。输入输出样例输入 #12 10 9输出 #12^10 mod 9=7说明/提示样例输入输出 1 解释210=10242^{10} = 1024210=1024,1024原创 2021-01-20 10:18:29 · 103 阅读 · 0 评论