分治
文章平均质量分 63
_beginend
这个作者很懒,什么都没留下…
展开
-
【luogu P5655 基础数论函数练习题】【分治+数论】
题意给出nnn个数,有qqq次询问,每次询问一个区间内的lcm对1e9+71e9+71e9+7取模后的值。n,q,T≤300,1≤ai≤260n,q,T\le 300,1\le a_i\le 2^{60}n,q,T≤300,1≤ai≤260分析在求一个区间的lcm的时候,可以把lcm表示成∏bi\prod b_i∏bi的形式,其中bi∣aib_i|a_ibi∣ai。在新加入一个ai...原创 2019-11-16 00:17:29 · 410 阅读 · 2 评论 -
Codeforces 960G Bandit Blues 第一类斯特林数+分治FFT
题意定义序列中的一个数为前缀最大值仅当其前面没有比他大的数,后缀最大值同理。问有多少个长度为n的排列满足前缀最大值数量恰好为a,后缀最大值数量恰好为b。 n,a,b≤105n,a,b≤105n,a,b\le10^5分析首先分析一下性质,排列中的最大值,也就是n必然是一个前缀最大值和后缀最大值,且前缀最大值一定在n的前面,后缀最大值一定在n的后面。 设s(i,j)s(i,j)s(...原创 2018-04-19 20:53:08 · 944 阅读 · 0 评论 -
LibreOJ #2541.「PKUWC 2018」猎人杀 分治NTT+容斥原理
题意猎人杀是一款风靡一时的游戏“狼人杀”的民间版本,他的规则是这样的: 一开始有nnn个猎人,第iii个猎人有仇恨度wiwiw_i,每个猎人只有一个固定的技能:死亡后必须开一枪,且被射中的人也会死亡。 然而向谁开枪也是有讲究的,假设当前还活着的猎人有[i1...im][i1...im][i_1...i_m],那么有wik∑mj=1wijwik∑j=1mwij\frac{w_{i_k}}{\...原创 2018-05-19 17:24:05 · 793 阅读 · 0 评论 -
51nod 1934 受限制的排列 分治+数学
题意对于一个 1 到 n 的排列 p1,p2,⋯,pn ,我们可以轻松地对于任意的 1≤i≤n 计算出 (li,ri) ,使得对于任意的 1≤L≤R≤n 来说 min(pL,pL+1,⋯,pR)=pi 当且仅当 li≤L≤i≤R≤ri 。 给定整数 n 和 (li,ri) (1≤i≤n) ,你需要计算有多少种可能的 1 到 n 的排列 p1,p2,⋯,pn 满足上述条件。 由于答案可能很...原创 2018-05-25 17:23:58 · 378 阅读 · 0 评论 -
bzoj 2395: [Balkan 2011]Timeismoney 最小乘积生成树
题意有n个点和m条边,每条边有两个属性s和t,求一棵生成树,使得选出的n-1条边的sigma(s)*sigma(t)最小。 n≤200,m≤10000,s,t≤255n≤200,m≤10000,s,t≤255n\le200,m\le10000,s,t\le255分析最小乘积生成树模板题。 把每一棵生成树看做平面上的一个点(x,y),其中x等于sigma(s),y等于sigma(...原创 2018-05-29 17:10:48 · 319 阅读 · 0 评论 -
Codeforces 981H K Paths 分治FFT+树形dp
题意给一棵nnn个节点的树,现在要从树上按顺序选出kkk条路径(可以相同),满足任意一条边要么被覆盖不超过111次,要么被覆盖恰好kkk次,且被覆盖kkk次的边数不能为000。问方案。 n,k≤105n,k≤105n,k\le10^5分析先考虑暴力,我们可以枚举两个端点uuu和vvv,然后保证每条选出的路径都包含这两个点之间的路径。 那么现在要从这两个点为根的子树中分别选出kk...原创 2018-06-13 16:26:52 · 569 阅读 · 0 评论 -
bzoj 3571: [Hnoi2014]画框 最小乘积匹配
题意给出两个二维数组a和b,求一个1到n的排列p,使得(∑ni=1a[i,pi])(∑ni=1b[i,pi])(∑i=1na[i,pi])(∑i=1nb[i,pi])(\sum_{i=1}^na[i,p_i])(\sum_{i=1}^nb[i,p_i])最小。 n≤70n≤70n\le70分析跟最小乘积生成树类似,这题要求的是最小乘积匹配。 那么我们只要把最小乘积生成树中的kr...原创 2018-05-30 18:31:34 · 241 阅读 · 0 评论 -
LibreOJ #6039.「雅礼集训 2017 Day5」珠宝 dp+决策单调性+分治
题意有nnn件物品,每件物品有一个价格cicic_i和价值viviv_i,现在对于所有的1≤i≤k1≤i≤k1\le i\le k,求出用iii元最多可以得到多大价值的物品。 n≤1000000,k≤50000,1≤ci≤300,1≤vi≤109n≤1000000,k≤50000,1≤ci≤300,1≤vi≤109n\le1000000,k\le50000,1\le c_i\le300,1\...原创 2018-06-22 19:58:58 · 915 阅读 · 0 评论 -
LibreOJ #2320.「清华集训 2017」生成树计数 prufer序列+组合数学+分治FFT
题意有nnn个点,每个点有点权aiaia_i,定义一棵生成树TTT中第iii个点的度数为didid_i,那么该生成树的权值val(T)=(∏i=1nadiidmi)(∑i=1ndmi)val(T)=(∏i=1naididim)(∑i=1ndim)val(T)=(\prod_{i=1}^na_i^{d_i}d_i^m)(\sum_{i=1}^nd_i^m) 求所有生成树的价值的和,答案模998...原创 2018-06-18 21:55:44 · 976 阅读 · 0 评论 -
bzoj 4311: 向量 线段树分治+凸包+三分
题意你要维护一个向量集合,支持以下操作: 1.插入一个向量(x,y) 2.删除插入的第i个向量 3.查询当前集合与(x,y)点积的最大值是多少。如果当前是空集输出0 n分析如果直接用类似二维数点的方法来做显然不行。 考虑点积最大值的几何意义,也就是一条与该向量垂直的直线从无穷远处飞过来,碰到的第一个点就是答案。不难发现答案一定在凸包上面。 如果不带删除操作的话,我们可以原创 2018-01-10 07:46:49 · 345 阅读 · 0 评论 -
CS Academy Round 65 Classic Task 分治+dp
题意有一个n∗mn*m的矩阵AA,每个格子有一个权值。要你找一条从(1,1)(1,1)到(n,m)(n,m)的路径,每次只能从(x,y)(x,y)走到(x,y+1)(x,y+1)或(x+1,y)(x+1,y),且经过的位置的权值和最小。 输入两个数组UU和VV,Ai,j=(Ui+j)xor(Vj+i)A_{i,j}=(U_i+j)xor(V_j+i)。 n,m=10000n,m,要求输出路原创 2018-01-18 16:41:57 · 335 阅读 · 1 评论 -
bzoj 2458: [BeiJing2011]最小三角形 分治
题意给出平面上的n个点,求三个点使得这三个点的两两距离和最小。 n<=200000分析这题的方法可以借鉴平面最近点对的求法先把点按照横坐标排序。考虑分治,对于一个区间[1,n],往两边分治。然后答案分三种情况,一种是在左区间中,一种是在右区间中,最后一种是跨过了两个区间。显然前两种我们都已经处理完毕了,接着考虑第三种。分两种情况讨论,一种是两个点在左区间,一种是两个点在右区间。假设现在左右两个区间原创 2016-12-06 21:42:10 · 801 阅读 · 0 评论 -
bzoj 1113: [Poi2008]海报PLA 分治
题意N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. 1<=n<=250000分析看到题我的第一想法就是分治。。。 每次在区间[l,r]中找到一个最小的,然后左右递归即可。 复杂度由于要求rmq,就是nlogn的。 还有O(n)的做法,就是用单调栈来做。代码#include<iostream>#include<cstdio>#include<cstdlib>#incl原创 2017-03-23 19:15:52 · 336 阅读 · 0 评论 -
bzoj 4184: shallot 分治+线性基
题意小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏。 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且让小葱从自己手中的小葱苗里选出一些小葱苗使得选出的小葱苗上的数字的异或和最大。 这种小问题对于小葱来说当然不在话下,但是他的身边没有电脑,于是他打电话给同为Oi选手的你,你能帮帮他吗? 你只需要输出最大的异或和即可,若小葱手原创 2017-09-25 21:03:59 · 472 阅读 · 0 评论 -
Codeforces 875D High Cry rmq+分治
题意给出一个长度为n的序列a[],问你有多少个区间[l,r]满足a[l] or a[l+1] or … or a[r]>max(a[l],a[l+1],…,a[r])。 n<=200000,a[i]<=10^9分析假设我们要处理一个区间[l,r]内有多少满足题目条件的区间,我们可以先找到这个区间的最大值,设为mid。只要我们找到mid左边的第一个数,使得这个数or上a[mid]>a[mid],设其原创 2017-10-17 20:23:49 · 624 阅读 · 0 评论 -
51nod 1617 奇偶数组 分治
题意a是一个包含n个元素的数组。对a中的元素进行1-n编号。 定义“偶数组” even, eveni=a2i(1≤2i≤n) ,即“偶数组” even是由数组a中编号为偶数的元素组成的。 定义“奇数组” odd, eveni=a2i−1(1≤2i−1≤n) ,即“奇数组”odd是由数组a中编号为奇数的元素组成的。然后,我们定义一个转换方程F(a),F(a)的结果为一个数组,过程如下:当n>1时,原创 2017-10-24 08:08:31 · 593 阅读 · 0 评论 -
51nod 1348 乘积之和 分治+NTT+中国剩余定理
题意给出由N个正整数组成的数组A,有Q次查询,每个查询包含一个整数K,从数组A中任选K个(K <= N)把他们乘在一起得到一个乘积。求所有不同的方案得到的乘积之和,由于结果巨大,输出Mod 100003的结果即可。例如:1 2 3,从中任选1个共3种方法,{1} {2} {3},和为6。从中任选2个共3种方法,{1 2} {1 3} {2 3},和为2 + 3 + 6 = 11。 1 <= N,原创 2017-12-23 07:38:22 · 464 阅读 · 0 评论 -
bzoj 4456: [Zjoi2016]旅行者 分治+最短路
题意小Y来到了一个新的城市旅行。她发现了这个城市的布局是网格状的,也就是有n条从东到西的道路和m条从南到北的道路,这些道路两两相交形成n×m个路口 (i,j)(1≤i≤n,1≤j≤m)。她发现不同的道路路况不同,所以通过不同的路口需要不同的时间。通过调查发现,从路口(i,j)到路口(i,j+1)需要时间 r(i,j),从路口(i,j)到路口(i+1,j)需要时间c(i,j)。注意这里的道路是双原创 2018-01-12 21:29:46 · 385 阅读 · 0 评论 -
bzoj 3711: [PA2014]Druzyny 分治+线段树优化dp
题意体育课上,n个小朋友排成一行(从1到n编号),老师想把他们分成若干组,每一组都包含编号连续的一段小朋友,每个小朋友属于且仅属于一个组。 第i个小朋友希望它所在的组的人数不多于d[i],不少于c[i],否则他就会不满意。 在所有小朋友都满意的前提下,求可以分成的组的数目的最大值,以及有多少种分组方案能达到最大值。 1分析真的是十分牛逼的一道题,比赛的时候只会打暴力。 设f原创 2018-01-14 11:48:16 · 583 阅读 · 1 评论