分块
文章平均质量分 53
alan_cty
蒟蒻一只
别打脸(⊙o⊙)哦
展开
-
【WinterCamp 2013】模积和
Description求∑i=1n∑j=1,j≠im(nmodi)∗(mmodj)\sum_{i=1}^{n}\sum_{j=1,j\not =i}^{m}(n\mod i)*(m\mod j) n,m<=10^9,答案模19940417Solution首先,看到有%,心里很不爽,把它变成n−⌊ni⌋∗in-\lfloor {n\over i}\rfloor*i,对于i≠ji\not =j的情况,原创 2016-03-16 19:36:26 · 1406 阅读 · 0 评论 -
[51nod1192]gcd表中的质数
Description求∑i=1n∑j=1me(gcd(i,j)是质数)\sum_{i=1}^{n}\sum_{j=1}^{m}e(gcd(i,j)是质数) T<=1000,n,m<=5*10^6Solution经典反演套路题,貌似没有其他做法(其他做法的大爷不要鄙视蒟蒻=w=) 复习一下莫比乌斯反演,所以就来打了这道题 首先约定n<mn<m 设FdF_d表示∑ni=1∑mj=1e(gcd(原创 2016-11-30 20:11:31 · 828 阅读 · 2 评论 -
[51nod1223]分数等式的数量
Description给出一个数L,求所有的x < y <=l且满足1/x+1/y=1/n(n为整数)的(x,y)二元组的数量。 L<=10^11Solution近似暴力算法碾过去了=w= 安利一份更劲的题解 首先我们就相当于求x+y|xyx+y|xy的二元组的数量 提取一个d=gcd(x,y)d=gcd(x,y), x′=x/dx'=x/d, y′=y/dy'=y/d,那么 d(x′+y原创 2016-12-22 22:06:22 · 559 阅读 · 0 评论 -
【WC模拟】J
Description由于题面过于丧心病狂就直接贴图了 Solution可以把每个操作变成2进制的异或操作。 那么就是修改加询问前缀异或和为st的数的个数。 线段树\分块都可以做啊。 一个优化:有用的状态只有16种,可以提前处理出来。Code#include <cstdio>#include <cstring>#include <algorithm>#define fo(i,a,b)原创 2017-01-21 20:22:17 · 435 阅读 · 0 评论 -
【GDOI2018模拟8.12】区间第k小
Description给出一个长度为n的序列a,q次询问某个区间[l,r]中的区间第k小,注意如果一个数的出现次数大于w就把它当成n 询问强制在线 n,q,ai<=10^5SolutionOrz 数据结构 根号算法讲师 首先如果询问可以离线怎么做? 一个显然的思路就是莫队+数据结构直接做,但是这样是O(nn√logn)O(n\sqrt n \log n)的 实测数据无梯度一个点都跑不过Qw原创 2017-08-21 12:17:57 · 867 阅读 · 0 评论 -
[Ynoi2017]舌尖上的由乃
Description维护区间加和区间第k小。 n<=100000Solution分块,设块大小为k相信大家都会O(n/k log^2 n)的查询和O(k)的修改。 什么你不会O(k)的修改?归并啊归并啊。 那么平衡规划一下k=n√logn\sqrt n \log n 总复杂度O(nn√logn)O(n\sqrt n log n) Ps:为什么我本地拍过了交到bzoj上RE了???? 注原创 2017-12-08 21:51:12 · 645 阅读 · 0 评论 -
【清华集训2017模拟11.29】K小数查询
Description维护一个数据结构,资瓷区间取min和区间求k小值。 n<=8*1e4Solution和由乃OI那题很像,直接分块,块内归并重构,二分答案块内二分查询。 只不过比较良心的是JZOJ上不卡常,但是我块大小开n√logn\sqrt n log nT了,开n√\sqrt n过了。。。Code#include <cstdio>#include <cstring>#include原创 2017-12-09 21:29:54 · 411 阅读 · 0 评论 -
[CF862F]Mahmoud and Ehab and the final stage
Description给出n个字符串s[i],资瓷两种操作: 1 a b 询问所有[a,b]的子区间[l,r]中LCP(l,r)*(r-l+1)的最大值。 其中LCP(l,r)表示s[l]~s[r]的LCP 2 x st 把s[x]变成stn,q<=1e5,∑|S|<=1e5Solution看到总串长比较小就知道是套路题。 分三种情况考虑。 第一种情况,只有一个串,那么直接用线段树维护区间原创 2018-01-22 08:14:38 · 499 阅读 · 0 评论 -
[BZOJ2122]工作评估
Description给出一个长度为n的序列,第i天有状态值Di和评估上限Li若当前的评估值为x0,第i天后会变成min(x0+Di,Li)需要回答q次询问,第i次询问给出L,R,x0,求[L,R]的一个子区间[l,r]使得经过这些天之后最后的评估值最大。n,q<=5e4Solution设f(l,r,x)表示若当前评估值为x,经过[l,r]这个区间会变成什么,f有两个性质1.若...原创 2018-10-29 16:57:31 · 360 阅读 · 0 评论 -
【GDOI2017模拟9.10】子串
Description给出n个字符串Si,m次询问,第i次询问Sli~Sri这些字符串中有多少个是字符串pi的母串。 ∑|Si|,∑|pi|<=5∗105\sum{|Si|},\sum{|pi|}<=5*10^5Solution看到多串匹配就想到了AC自动机。 然而辛辛苦苦打完之后发现只有自己傻傻地写的那么辣鸡。 在线OrzSAM和SA分块做法。显然我们需要离线回答。 把所有的pi建一棵AC原创 2016-09-10 16:51:25 · 673 阅读 · 0 评论 -
【bzoj3576】【HNOI2014】江南乐
Description有n堆石子,每堆石子有a[i]个。 每次操作可以把某一堆不少于F个的石子堆分成m份(m>=2且m<=a[i]),并且尽量均分。即最多的石子堆和最少的最多相差1. 不能操作者输,求先手是否有必胜策略。 数据组数≤100,n≤100,F,a[i]≤10^5。Solution组合游戏。a[i]^2的sg转移还是挺显然的。 那么我们考虑如何优化。 我们发现,我们⌊nm⌋\lf原创 2016-05-26 19:24:16 · 1059 阅读 · 0 评论 -
【HNOI2016模拟4.10】 K小数查询
Description维护一个长度为n的序列,使得其支持m次操作,包括区间插入和区间求k小数。 n,m<=80000,在任何时候|ai|<=5000000Solution一看到区间第k大/小,就想到了主席树。 但这个是区间修改! 怎么做呢? (分块大法好) 观察到时限7s,果断上分块。(复杂度好不科学) 分块大法好?! 用每一个块维护排过序后的块和原来的块,然后对于每次询问, 二分答原创 2016-04-20 19:35:57 · 629 阅读 · 0 评论 -
[bzoj2818]gcd
Description求∑i=1N∑j=1Ngcd(i,j)为质数的个数\sum_{i=1}^{N}\sum_{j=1}^{N}gcd(i,j)为质数的个数 N<=10^7Solution很显然的莫比乌斯反演~(≧▽≦)/~啦啦啦 然而本蒟蒻只会这种傻逼方法,跑了 WerKeyTom_FTD爷用了机智的phi法,跑的飞起。 好吧,回归正题。 首先,我们知道,根据普通的莫比乌斯反演,原创 2016-05-30 20:53:38 · 1018 阅读 · 0 评论 -
[bzoj1257][CQOI2007]余数之和sum
Description给出n,k,求∑i=1nkmodi\sum_{i=1}^{n}k\mod i n,k<=10^9Solution又是一道水题。(最近比较颓) 所以说嘛,做人呢,还是需要一定的姿势水平,像我这种蒟蒻呀,就只能不断地用手划水。 看着%不爽,拆成∑i=1nk−⌊ki⌋∗i\sum_{i=1}^{n}k-\lfloor{k\over i}\rfloor*i 然后就可以愉快的分块原创 2016-06-24 20:08:21 · 490 阅读 · 0 评论 -
【NOIP2013模拟联考7】数列
Description给出一个序列,每个数由一个二元组(a,b)表示,有4中操作 1:把a值在l~r范围内的数乘上x再加上y 2:把b值在l~r范围内的数乘上x再加上y 3:询问a值在l~r范围内的数的和。 4:询问b值在l~r范围内的数的和。 n<=50000Solution写了一下午的常数优化,终于过掉了TAT 具体来说,很容易想到第一个分块。我们用每个块维护原块和排过序的块,那么我原创 2016-06-25 16:23:20 · 1019 阅读 · 0 评论 -
【2011集训队出题】Crash的数字表格
Description求∑i=1n∑j=1mlcm(i,j)\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j) n,m<=10^7Solution(注意,以下内容默认n<=mn<=m) 看着lcm不爽,把它变一变: ∑i=1n∑j=1mijgcd(i,j)\sum_{i=1}^{n}\sum_{j=1}^{m}{ij\over \gcd(i,j)} 莫比乌斯反演常用,枚原创 2016-03-17 21:53:42 · 954 阅读 · 0 评论 -
[51nod1244]莫比乌斯函数之和
Description求∑i=lrμ(i)\sum_{i=l}^{r}\mu(i) l,r<=10^10Solution设M(n)=∑i=1nμ(i)M(n)=\sum_{i=1}^{n}\mu(i) 我们知道,∑d|nμ(d)=[n=1]\sum_{d|n}\mu(d)=[n=1] 那么1=∑i=1n∑d|iμ(d)1=\sum_{i=1}^{n}\sum_{d|i}\mu(d) =∑T=原创 2016-07-06 09:35:17 · 2533 阅读 · 0 评论 -
[51nod1239]欧拉函数之和
Description求∑i=1nφ(i)\sum_{i=1}^{n}\varphi(i) n<=10^10Solution这道题和莫比乌斯函数一行,都可以通过神奇的推导的出结论。 我们设ϕ(n)=∑i=1nφ(i)\phi(n)=\sum_{i=1}^{n}\varphi(i) 众所周知,∑d|nφ(d)=n\sum_{d|n}\varphi(d)=n 那么,φ(n)=n−∑d|n,d<n原创 2016-07-06 10:37:41 · 2204 阅读 · 0 评论 -
[CF1083F]The Fair Nut and Amusing Xor
Description给出两个长度为n的序列A和B,定义一次操作为,选择A中一个长度为k的区间,将这个区间内的元素异或上x,x为你选择的数。我们认为A和B的相似度为将A和B变为相等的最小的操作次数。现在有Q次操作,每次操作会修改A或B中的一个元素,你需要在每次操作之后输出A和B的相似度n,q,k<=200000,Ai,Bi<2^14Solution先考虑如何求相似度令ci...原创 2019-03-14 21:22:43 · 276 阅读 · 0 评论