![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分块
Cold_Chair
我XXX就是饿死,死外边,从这里跳下去,也不会再做你九条可怜一个测试点
展开
-
JZOJ 100035【NOIP2017提高A组模拟7.10】区间
题目大意: 1<=k<=n<=2∗1072*10^7 1<=t,p<=10910^9 time limits:2s题解:我们注意到这是没有办法用逆元的。 但就就是这就是分块啊(为毛比赛没有一个人想到)。 把n个序列分成长度为k的若干段,当然最后一段不一定是k。 然后对每一块求一个前缀、后缀乘积和。 最后暴枚区间,注意到每个区间刚好会被两段或一段覆盖,直接O(1)算即可。这道题最难点在于原创 2017-07-10 19:23:29 · 482 阅读 · 0 评论 -
JZOJ 5967. 常数国
题解:对于这种题还是要从部分分的做法下手。如果操作都是[1…n],我们并不用关心具体的变化,每次都是取出最大值,然后插入一个值,显然用个堆就行了。对于100分也是类似的,观察时限和数据范围,不难想到分块。对于整块的,只要取出最大值,插入一个值,还要打上一个标记,表示插入个这个值。因为在处理散块的时候,需要先把序列还原出来,那么就是标记如何下传的问题了。首先不然想到标记之间的顺序没有关系...原创 2018-11-29 22:01:53 · 234 阅读 · 0 评论 -
JZOJ 5936. 【NOIP2018模拟10.29】逛公园
题解:从头到尾只会写暴力。首先要想到一个结论:设fi,j,xf_{i,j,x}fi,j,x表示一开始是x,走i到j这一段后的愉悦度。显然有:若x1<=x2,则fi,j,x1&lt;=fi,j,x2f_{i,j,x1}&lt;=f_{i,j,x2}fi,j,x1<=fi,j,x2还有fi,j,x=min(si,j,fi,j,∞)f_{i,j,x}=min...原创 2018-10-29 21:24:01 · 304 阅读 · 0 评论 -
bzoj 3489: A simple rmq problem
传送门.题解:本来应该用数据结构大力解决这题,无非就是对于每一个点求一个next、last分别表示上一个和下一个和它相同的,然后变成了三维偏序问题。然后随便想了个分块,考虑不仅对序列分块,还对值域分块。设si,j,ks_{i,j,k}si,j,k表示序列中的第i块到第j块在值域第k块的出现次数为1的个数。再维护个前缀和pi,jp_{i,j}pi,j表示序列前i块在j的个数。然后就可...原创 2018-10-17 14:48:32 · 234 阅读 · 0 评论 -
Codeforces 966 E May Holidays
传送门.题解:这个如果用树形数据结构维护是非常不好搞的。用树链剖分∗∗*线段树∗∗*带修主席树,也许需要O(n log4n)O(n log4n)O(n ~log^4n)的复杂度,还不如暴力。重构大法好!!!重构的话求个dfs序+前缀和就O(n)O(n)O(n)了。问题在于一块里的如何求?点数少?虚树大法好!! 对于虚树上每个点把它在实树里到...原创 2018-07-01 19:45:23 · 402 阅读 · 0 评论 -
【srm603】Sum Of Arrays
Description:英雄有两个整数数列A 和B。每个数列有恰好n 个元素。英雄将会对两个数列进行两次操作:首先,他会将两个数列中的元素按照某种方式重新排列。(他可以将数列排成任意他想要的顺序,包括原本的顺序。交换数列A 和B 的元素是不被允许的,每个数列要独自重排。)在此之后,他会计算出一个有n 个元素的新数列C,按照对于所有i,C[i] = A[i] + B[i]。英雄喜欢相同的多个数字。他的原创 2018-04-17 22:09:04 · 255 阅读 · 0 评论 -
【CF319D】Have You Ever Heard About the Word?
【CF319D】Have You Ever Heard About the Word?:String专题又出现啦~(≧▽≦)/~ 这次的题很水的啦0.0 一个字符串的子串是该字符串的一段连续子序列,如bca是abcabc的子串,而cc不是。 一个重复块(repeating block)由一个字符串与自身连接而成,如abcabc是一个重复块,而abcabd, ababab不是。 你原创 2018-04-02 19:49:43 · 327 阅读 · 0 评论 -
【NOIP2013模拟联考12】数数(数位dp||类欧几里得)
Description:ztxz16从小立志成为码农,因此一直对数的二进制表示很感兴趣。今天的数学课上,ztxz16学习了等差数列的相关知识。我们知道,一个等差数列可以用三个数A,B,N表示成如下形式:B + A, B + 2 * A, B + 3 * A, …, B + N * Aztxz16想知道对于一个给定的等差数列,把其中每一项用二进制表示后,一共有多少位是1,但他的智商太低无法算出此题,因原创 2017-12-19 22:10:25 · 1057 阅读 · 0 评论 -
51nod 1203 JZPLCM
原题链接.据说这是某国家队爷的题,怪不得我一眼不会。求lcm即求各个质因子对应得指数的最大值。这时候想到以前做过几道类似的题怎么做的。把<n√<\sqrt n的质因子分成一块,大于>n√>\sqrt n的质因子分成一块。这样做的优势是<n√<\sqrt n的质因子的个数少, 而,>n√>\sqrt n的质因子的指数最大为1。那么这道题就显然了。<n√<\sqrt n的质因子强行RMQ,因为只有48原创 2017-11-23 18:40:15 · 325 阅读 · 0 评论 -
51nod 1201[整数划分] 1259[整数划分V2] 1597 [有限背包计数问题]
因为觉得这三题差不多,思路有相同的地方也有不同的地方,挺有趣的,所以放在一起。51nod 1201整数划分:题目大意:给出n,将n分为1-n中若干个不同的数的和,求方案数,模一个被模烂的质数。(1<=n<=50000)题解:每个数不同,那么和最小的情况就是1,2,3…, 假设是1-i的和,那么就有i∗(i+1)/2<=n,i<=2n−−√i*(i+1)/2<=n,i<=\sqrt{2n} 所以最原创 2017-09-12 12:30:10 · 900 阅读 · 0 评论 -
【GDOI2018模拟8.12】区间第k小
Description:Data Constraint:题解:对于w=100000,相当于没有w这个限制,直接主席树即可。 对于非强制在线的,可以考虑莫队算法,对值域分块,维护每个块小于等于w的数的个数,查询时暴力过去,直到发现答案在当前这个块里,停下来,再暴力,一次是O(n√\sqrt n)。 但是现在强制在线了,how to do it?还是可以暴力分块的。 对序列也分块。 设c[i][原创 2017-08-15 21:32:56 · 424 阅读 · 0 评论 -
51nod 1244 莫比乌斯函数之和
题目描述:求∑bi=aμ(i)\sum_{i = a}^b μ(i) 1<=a<=b<=10^10题解:杜教筛的裸题。 设s(n) = ∑ni=1μ(i)\sum_{i=1}^n μ(i)我们在学莫比乌斯反演的时候曾经证明过: ∑i|nμ(i)\sum_{i | n} μ(i) = (n = 1)∑ni=1∑j|iμ(i)\sum_{i=1}^n \sum_{j | i} μ(i) = 1原创 2017-06-19 19:23:30 · 568 阅读 · 0 评论 -
51nod 1239 欧拉函数之和
题目描述:求: ∑ni=1φ(i)\sum_{i = 1}^n φ(i) 1 <= n <= 10题解:杜教筛第二道裸题。必要结论: ∑i|nφ(i)=n\sum_{i|n} φ(i) = n证明: 设f(n) = ∑i|nφ(i)\sum_{i|n} φ(i) 将n分解质因数,n = ∏pqii\prod_{{p_i^{q_i}}} 利用莫比乌斯函数里学到的一个性质,可以得到: f(原创 2017-06-20 19:13:51 · 493 阅读 · 0 评论 -
51nod 1237 最大公约数之和 V3
题目大意:G=0;for(i=1;i<=N;i++)for(j=1;j<=N;j++){ G = (G + gcd(i,j)) % 1000000007;}题解:杜教筛。 这里提供两种反演姿势,之后我们会发现一个神奇的东西。 在此之前你得会杜教筛φ。反演1:∑ni=1∑nj=1gcd(i,j)\sum_{i = 1}^n \sum_{j = 1}^n gcd(i, j) =2∗原创 2017-06-23 12:47:34 · 545 阅读 · 0 评论 -
51nod 1190 最小公倍数之和V2
题目大意:给出2个数a, b,求LCM(a,b) + LCM(a+1,b) + .. + LCM(b,b)。 1T组数据,1且数据为随机,没有构造的卡人数据。题解:这一题我是不会的,去网上看了下题解,发现了一个奇怪的反演姿势。必要结论: ∑d|nμ(d)=(n=1)\sum_{d | n} μ(d) = (n = 1) 证明略。Ans=∑bi=alcm(i)Ans原创 2017-07-02 21:46:36 · 578 阅读 · 1 评论 -
51nod 1238 最小公倍数之和 V3
题目描述:求: ∑ni=1∑nj=1lcm(i,j)\sum_{i = 1}^n \sum_{j = 1}^n lcm(i, j)题解:∑ni=1∑nj=1lcm(i,j)\sum_{i = 1}^n \sum_{j = 1}^n lcm(i, j) =(∑ni=1∑ij=1lcm(i,j))∗2−n∗(n+1)/2=(\sum_{i = 1}^n \sum_{j = 1}^i l原创 2017-07-03 19:14:35 · 696 阅读 · 0 评论 -
6.22模拟 T1 小蛋糕(分治做决策单调性)
题目大意:3<=m<=n<=1e5题解:显然是C由小到大是最优的,那么这时代价就是(最大-最小)*2先把把所有蛋糕按c排序。不然发现随着左端点的递增,最优决策的右端点是非递减的。然后这个东西居然可以分治???(套路太浅)设dg(x,y,l,r)dg(x,y,l,r)dg(x,y,l,r)表示现在要搞左端点在[x,y][x,y][x,y]里的,它们可能的最优决策...原创 2019-06-23 20:57:58 · 226 阅读 · 0 评论