救赎之路
查漏补缺、朝着目标前进..
计划
矩阵多项式相关[0.5?/1]
重学SAM[1/1]
Miller Rabin&Pollard Rho[0.5?/1]
刷题大计[78/150]
现在做了多少?
78/150
前面遇到的比较好玩的题目
1998: [Hnoi2010]Fsk物品调度
强行搞,每次选了一个$x$就把$x$合并到$x+d$,并查集维护
1697: [Usaco2007 Feb]Cow Sorting牛排序
对于一个环:
1)用环上最小的数绕一圈,答案就是$sum+(tot-2)\times min$
2)用全部里面最小的数先跟环上最小的数交换,再在环上绕一圈,答案就是$sum+(tot+1)\times minn+min$
3900: 交换茸角
如果是$n$个人互相交换,那么答案就是$n-1$
可以预处理出某个集合是否能刚好互相交换,就可以状态压缩枚举子集dp了..
3901: 棋盘游戏
如果我们用$flag_{i,j}$表示$(i,j)$被正方形覆盖的奇偶
对于$x\in [1,x],y\in [1,x]$
则有$flag_{i,j}\ xor\ flag_{i,x}\ xor\ flag_{i,j+x}=0$
同理$flag_{i,j}\ xor\ flag_{x,j}\ xor\ flag_{i+x,j}=0$
那么枚举$flag_{x,1...x}$的值就可以确定$flag_{x,x+1...n}$
然后再枚举$flag_{i,x}$
对于$flag_{i,j}\ flag_{i,j+x}\ flag_{i+x,j}\ flag_{i+x,j+x}$这四个值是一体的,而且不受别的干扰
那么这样做的总时间复杂度就是$O(2^xx^2)$
3902: 三向投影
从小到大做是不会干扰到别的取值的
如果对于某个值有$rs$行$cs$列
可以枚举有$i$行$j$列不符合条件来容斥
做完就可以把这几行删掉了
2669: [cqoi2012]局部极小值
枚举某些本不是局部极小值现在是的来容斥
方案数可以dp解决
定义$f_{i,j}$表示填到$i$这个数,$j$状态表示哪些局部极小值已经填了
可以证明局部极小值不超过$8$个
4153: [Ipsc2015]Familiar Couples
维护二元组hash,并查集搞一下..
4155: [Ipsc2015]Humble Captains
战斗力之和就是典型最小割
战斗力之差就可以看成是两个集合度数和之差/2
用01背包dp就行了
bitset可以优化
4159: [Neerc2009]Business Center
水
4160: [Neerc2009]Exclusive Access 2
把题意转化成要求分成图的最小层数
那么同一层之间不能有连边
同样的,状态压缩枚举子集dp..
4404: [Neerc2015]Binary vs Decimal
有这样的结论:某个符合条件的数的后缀肯定也符合
证明:
对于一个符合条件的$k$位的十进制数,在前面添$1$就相当于加上了$10^{k+1}$
由于$10^{k+1}=2^{k+1}\times 5^{k+1}$
所以在二进制中不会影响到$[1...k]$的数
那么就可以采用bfs的方法在前面添位..
[2017.3.20]
写以前的题解写得好累..
3322: [Scoi2013]摩托车交易
直接做,到一个地方能买就买,能卖就卖,中途走不通的就丢
维护一棵最大生成树,做LCA就行了..
3279: 小Z的麻烦
对于某一个奇数$x$,找到一个最大的$k$使得$x\cdot 2^k\leq n$
那么所能产生的贡献就是$\lfloor\dfrac{k+1}{m}\rfloor$
那么只要依次枚举产生$1$次贡献的有多少个、$2$次、$3$次.. 即可
3280: 小R的烦恼
同【餐巾计划】..
[2017.3.21]
2138: stone
hall定理.. Claris讲的很详细..
3281: 小P的烦恼
这些桥肯定连成一条链,这条链可以dp的啊..
2167: 公交车站
先用把公交车按照lca深度排序,用并查集染色
对于询问$(x,y)$,倍增找出最近的能一步跳到lca的点
那么问题就在能否找到一条在这两点子树下的公交车了
3070: [Pa2011]Prime prime power 质数的质数次方
根据质数密度可得知$b=2$时一定能在$[\sqrt{n}+1,\sqrt{n}+1+klogk]$找到k个质数
确定了限制之后就可以暴力找了..
[2017.3.22]
2130: 魔塔
用$f_i$表示在$B$魔塔走$i$层在$C$魔塔能取得的最大值
那么在从$A$魔塔往上爬的时候就维护一下这个数组就行了
4261: 建设游乐场
黑白染色,由于每个点度数肯定为$2$,考虑用费用流做
拆点,分成竖直方向和水平方向,并多加一个点限制流量
找最小费用,即使得都选竖直或水平方向时产生费用$w$
就连$(1,0)$、$(1,w)$两条边
1515: [POI2006]Lis-The Postman
给出来的条件就是说走了某条边后就要走某条边
也就是给这两条边之间连一条有向边
判错、判环
注意题目只要求走完全部点边而不是全部的点
思考还是不够,很多题还是想不到
而且代码实现能力很差!每次都不能1A
必须要提高1A率!
为什么前几天都没写什么?因为今天才补的题解..
[2017.3.23]
4374: Little Elephant and Boxes
把30个物品分成两半,一半用$2^{15}$预处理所有的情况,然后按照钻石数排序分类
然后用$2^{15}$枚举另一半的情况,二分算同样答案的概率
4460: [Jsoi2013]广告计划
枚举答案$x$,那么在模$x$同余的字符必须要在同一行里
可以用bitset求出在模$x$为$i$的能否在第$j$列开始搞出
那么问题就很简单了
大晚上做cf div1,还是太年轻了.. 轻易的就掉下去了..
[2017.3.24]
「雅礼集训 2017 Day1」矩阵
首先只要有黑的就一定可行
具体步骤:一行全黑->全黑
那么就枚举哪一行就行了
UOJ#228 基础数据结构练习题
线段树维护最大值最小值、和
1)如果该区间最大最小值开根相同就直接赋值
2)如果最大最小值差$1$就转化成区间加
「雅礼集训 2017 Day1」市场
和上面一样,同样的方法
晚上看SAM,感觉不错
[2017.3.25]
「雅礼集训 2017 Day1」字符串
构造SAM即可求出某个字符串在原串中匹配的次数
1)$K\leq \sqrt{n}$ 即长度不大
那么暴力枚举区间即可,复杂度为$O(K^2q)$
2)$K\geq \sqrt{n}$ 即数量不多
那么每一个询问区间都是一个串前缀的后缀
这个可以倍增跳fail来做
复杂度为$O(q(K+mlogK))$
由于常数很小,都能过
[2017.3.26]
「雅礼集训 2017 Day2」水箱
把$1$标为$1$,把$0$标为$-1$,那么答案就是$0的数量+最大前缀和$
每个节点维护一棵线段树,维护其前缀和
那么把挡板从大到小排序,合并的时候统计低于挡板的答案,合并线段树
「雅礼集训 2017 Day2」棋盘游戏
[2017.3.27]
「雅礼集训 2017 Day4」洗衣服
考虑贪心,每洗一件衣服肯定是找结束时间最短的,这个可以用堆维护
那么同样的烘干逆序处理即可
「雅礼集训 2017 Day4」编码
维护这个【?】填不填$1$,在字典树上前面有没有被选
那么就是2-sat模型
因为图具有对称性,所以就可以tarjan缩点$O(m)$求出
算了一下点是$6n$的,边是$24n$的
[2017.3.28]
哦,所以tm是我很想在这个学校咯!!!
md辣鸡
「雅礼集训 2017 Day2」线段游戏
这貌似是模板题??
用线段树维护区间的线段,使得该线段覆盖在该区间$mid$是最大的
每次覆盖就是递归的奥妙重重的
伪代码
cover(now,L,R,p) if(now(mid)>p(mid)) swap(p,now) if(p(L)>now(L)) cover(lc,L,mid,p) if(p(R)>now(R)) cover(rc,mid+1,R,p)
「雅礼集训 2017 Day4」猜数列
Thanks for YJQi
很难说.. 有问题找我..
简单来说就是找出只向右的dp
然后加上两维表示向左,递推类似吧..(真的类似?你别骗我)
「雅礼集训 2017 Day5」远行
并查集维护直径
如果不在线就可以先把树建出来
在线的话就LCT咯
[2017.3.29]
你tm的辣鸡liujiping!看我总有一天踩你在脚下!
「雅礼集训 2017 Day5」珠宝
发现$C_i$很小,就枚举这个来找
同一个$s$来说,对于$i\in[1,K]$,找在$mod s$同余的来做
然后也是很难搞,有决策单调性的
有问题来找我..
「雅礼集训 2017 Day7」跳蚤王国的宰相
讲道理的话最优策略一定是割重心的邻边,但是貌似很难打
%%%whx
搞个dp?维护二元组表示割到$i$的子树没有大于$n/2$的最少次数、当前子树下有多少
反过来做子树外的再计算答案
[2017.3.30]
「雅礼集训 2017 Day7」事情的相似度
做法1:sa+bitset
后缀数组构造出hei按照从大到小并查集合并
bitset维护该点有什么询问
每次合并就可以计算一部分答案
注意$\dfrac{n^2}{32}$空间复杂度不允许,询问砍半做
做法2:sam+lct+BIT
%%%whx
然后的话为了不搞乱这棵树,就不进行make_root操作了
具体就是
(暴力膜稳爷爷..
「雅礼集训 2017 Day7」蛐蛐国的修墙方案
因为给出的序列一定是合法的,所以
1)$n\ mod\ 2 == 0$ 这是很显然的吧..
2)绝对不会存在奇数大小的环
因为一个奇数大小的环填$)$一定比$($要多$1$
然后这个序列就一定会有第二个奇数大小的环,显然不成立
solution:
1)对于一个大小为$2$的环,前面一个填$($后面一个填$)$完全没问题啊
2)对于一个大小大于$2$的环,暴力枚举填什么,由于这个环一定是一个$($一个$)$
所以最大枚举数量是$\frac{n}{4}$,所以总时间复杂度为$O(2^{\frac{n}{4}})$
晚上搞了一波矩阵相关.. 感觉半懂半不懂吧..
[2017.3.31]
三月的最后一天啦.. cf选手要度过快乐的一晚啦..
「雅礼集训 2017 Day8」共
矩阵树定理
相当于一个左边$K$个点、右边$n-K$个点的完全二分图
搞出基尔霍夫矩阵之后可以手动消就很简单了
再乘上一个组合数(滑稽
公式:$$Ans=C_{n-1}^{K-1}\cdot K^{n-K-1}\cdot (n-K)^{K-1}$$
wuvin写了矩阵,看了会好懂
「雅礼集训 2017 Day8」价
做二分匹配,设药材$i$的匹配为药$match_i$
结论1:某药$i$选了那么所有连到的药材都要选,这个就很显然了
结论2:某药材$i$选了那么药$match_i$一定会选
证明:由于药$match_i$没选,为了保持药和药材的数目相同,在药中一定会有一个没有连匹配边
与结论1矛盾
那么这个显然是最大权闭合子图的模型啊..
「雅礼集训 2017 Day10」决斗
若用$r_i$表示初始位置小于等于$i$的精灵个数
设$p_i=r_i-i$
找到最小的$p_i$为$p_m$
那么肯定没有一个精灵会从$m$走到$m+1$
因为不存在一个$i$使得$p_m-p_i>0$,也就是没有以$m$结尾连续一段的个数大于它的长度
那么就把环变成链了..
贪心即可..
本来计划今天完成所有雅礼集训的题的.. 可惜我还太弱..
慢慢来吧,加油啊..
[2017.4.1~10]
懒得一笔.. 十天才更新一次..
开始刷liaoliao给的题啊..
「雅礼集训 2017 Day5」矩阵
这也是比较难搞的一题..
这里不写.. 想知道问我..
「雅礼集训 2017 Day10」数列
算出每个点开始的最长上升子序列和最长下降子序列..
然后乱搞??
1260: [CQOI2007]涂色paint
区间dp,看两端能否同时染色
1296: [SCOI2009]粉刷匠
因为只有两种颜色,就可以统计前缀和很轻易知道某一段染色后最多染对多少个块
然后不同行之间互不影响啊..
1560: [JSOI2009]火星藏宝图
可以看出两点之间若有第三点就肯定要走第三点
然后就是单调队列搞搞
1806: [Ioi2007]Miners 矿工配餐
记录前两个的值.. 记住不填是一个很奥妙重重的东西
2121: 字符串游戏
搞出$\left[i,j\right]$区间中可以匹配$k$字符串的哪几位 这个可以变成一个int类型数进行优化
然后就是区间dp了
2287: 【POJ Challenge】消失之物
配图差评 压根没有价值好吗
考虑无论哪个顺序最后的dp数组是一定的
那么假设现在不能选的是最后一个dp的,就可以倒推了
好像可以用fft做,只不过多一个log
*3566: [SHOI2014]概率充电器
算子树内子树外,要用到全概率公式
1562: [NOI2009]变换序列
倒着做二分匹配即可
3134: [Baltic2013]numbers
只要保证没有三位、两位的回文串即可
3294: [Cqoi2011]放棋子
看第$k$类棋子放$i$行$j$列的方案数,记住乘上一个组合数
3437: 小P的牧场
斜率优化
3107: [cqoi2013]二进制a+b
可以dp,就是看剩下多少个$1$
貌似可以直接判断??
*3090: Coci2009 [podjela]
dp,每个人子树内用$i$次自己最多还剩多少,可以为负哦
*2436: [Noi2011]Noi嘉年华
题面有毒 瞎搞搞对
离散化后找前缀后缀一个地方选$i$个另一个地方能选最多多少个
再dp某个区间全部由一个地方选另一个地方最多选多少
$dp_{i,j}=min(lef_{i-1,x}+rig_{i-1,y},x+y+sum)$
在x的增加同时y只会单调不降,好好想想
统计答案就是所有包含该区间的dp啊..
2698: 染色
每个点被染色的独立的
就可以用$1-每个点不被染色的概率$
这个xjb搞
1787: [Ahoi2008]Meet 紧急集合
两两lca肯定会有两个相同一个不同,那么聚集到那个不同的就是最优答案
1202: [HNOI2005]狡猾的商人
差分约束或者带权并查集
3242: [Noi2013]快餐店
其实就是断掉某条环上的边再搞直径
那么就xjb搞 真是不想写
2957: 楼房重建
可以分块,但是我的分块技巧不熟练
线段树的话维护一个区间需要递归来搞
明天想写个指针版的线段树??
3289: Mato的文件管理
莫队裸题
3781: 小B的询问
同上
哇沃日 写了十天的题解..
以后再也不拖了..
[2017.4.11]
*3809: Gty的二逼妹子序列
有很显然的$O(n\sqrt{n}logn)$的做法,但是不能过
只要对颜色进行分块就能做到$O(n\sqrt{n})$了
3262: 陌上花开
cdq裸题
2683: 简单题
把一个询问分成四块(或者两块)然后cdq
4170: 极光
其实这个就是询问一个菱形内有多少个点
那么的话把整个坐标系旋转45度就变成矩形啦,就和上面一样啦
具体就是$(x,y)->(x-y,x+y)$
3133: [Baltic2013]ballmachine
可以求得落到每个位置的优先级,用堆维护即可
[2017.4.12]
今天测试,做过的题都不会做,真是sb
fft模板还打错,退役的节奏
4331: JSOI2012 越狱老虎桥
边双联通分量缩点,然后这棵树的边从小到大加入
什么时候这些边不能组成一条链,这就是答案
那么这个就二分一下搞搞?
3136: [Baltic2013]brunhilda
可以线性筛出每个点最大的被标记的约数
那么用单调队列维护一下dp一下
[2017.4.13]
4662: Snow
考虑到某一块雪被扫掉会影响的也是一段区间
就用两棵线段树维护一下
3443: 装备合成
首先每种属性互不影响
每次合成建一个新点
那么查询就是某个节点的子树最大值
开400棵线段树
今天效率贼低,真是sb
[2017.4.14]
Kobe Bryant退役一年了..
*4229: 选择
反过来搞,就是加边了
以加边的时间搞最小生成树
那么每次加上一条边就把$x->lca->y$路径上的点缩成一个点,用并查集维护
mdzz我的lca是先跳再求最大值
3307: 雨天的尾巴
线段树合并,挺裸的吧 哎我一直拖一直不想写浪费时间,真是颓废
*3958: [WF2011]Mummy Madness
二分答案,那么可得人和木乃伊能走的范围都是一个矩形
那么就看看人有没有能走的地方木乃伊走不到
那么扫描线+线段树搞搞即可
看我影奥义·终极卡时大法
3343: 教主的魔法
分块,感觉好tm暴力
hh加油..
[2017.4.15]
*4527: K-D-Sequence
把连在一起的模$D$相同的一起搞
然后$a_i=a_i/D$
那么以$i$结尾要求的就是最小的$j$使得$max-min-(i-j)\leq K$
也就是$max-min+j\leq K+i$
那么用线段树维护$max-min+j$、$max+j$和$-min+j$
1237: [SCOI2008]配对
瞎证可得只排好序后会选前后两个
3306: 树
dfs序乱搞一下 沃日这什么辣鸡评测机天天卡我读字符
400啦撒花..
[2017.4.16]
1485: [HNOI2009]有趣的数列
显然卡特兰数,只是要分解质因数维护
2440: [中山市选2011]完全平方数
二分答案,问题转化成有没有$K$个数小于$mid$
就容斥一下,有多少个数含有某几个质数的平方因子
2749: [HAOI2012]外星人
其实只跟$2$的个数有关??
因为$2$变$1$才能全部消失
所以统计一下$2$的个数,线性筛
[2017.4.17]
早上补了一发数论.. 感觉自己基础好差 这个星期要学大整数分解和杜教筛(行吧没学到)
2822: [AHOI2012]树屋阶梯
卡特兰数 嗯后面会专门开一个东西来总结卡特兰数的
wiki百科比较详细
2956: 模积和
沃日又要化数学公式
其实挺好化的,就是要求一段连续的数的和(等差数列求和)和一段连续的数的平方和(就是$x(x+1)(2x+1)$)
2154: Crash的数字表格
在我以前的blog里面最下面化好了式子
这里详细讲一下线性筛后面的式子的部分
就是要筛$f(D)=\sum\limits_{d|D}\mu(\frac{D}{d})\frac{D^2}{d}$
那么可以证明这是一个积性函数
然后考虑把它化成$D\sum\limits_{d|D}\mu(\frac{D}{d})\frac{D}{d}$
加上一个质数$p$如果与其互质就可以直接乘,不互质的话可以看出它不会影响到后面的那部分的值,所以直接乘$p$就行了
嗯看到和dalao的差距了
面对不会算的积性函数时,nbc会去打表找规律,而我却只会发呆..
真是sb
[2017.4.18~21]
*2401: 陶陶的难题I
xjb搞就可以看出$ans(n)-ans(n-1)$是积性函数
嗯打个表找规律即可
1101: [POI2007]Zap
积性函数推公式
*3309: DZY Loves Math
推出公式之后发现$g(D)=\sum\limits_{d|D}f(d)\mu(\frac{D}{d})$是可以筛的..
大概就是
分的是$n=p_1^{a_1}p_2^{a_2}...p_k^{a_k}$
首先发现只要含有某个质数的二次方或以上就没什么用了.. 因为莫比乌斯函数为$0$
那么如果存在$a_i\not\equiv a_j$,$g(n)=0$,因为除了最大的$a_i$的集合其他的选奇数个和偶数个方案数相同,就是会抵消掉
如果全部$a_i$都相等的话,$g(n)=(-1)^{k+1}$,因为有些可以抵消而全部选$0$和选$1$并不能..
讲道理的话,打个表也能找规律..
*3529: [Sdoi2014]数表
离线询问从小到大拍个序,然后碰到的再加入就行了
*3462: DZY Loves Math II
把每一个质数搞出来最多只有$7$个
那么假设它用了$x\dfrac{S}{p_i}+y$次,然后的话一块一块$S$可以组合数算,剩下的$y$就背包一下,大小最多为$7S$
*3560: DZY Loves Math V
每种质数是独立的..
3561: DZY Loves Math VI
莫比乌斯反演暴力算,复杂度$O(nlogn)$
数论是真的难..
[2017.4.22]
*3434: [Wc2014]时空穿梭
3450: Tyvj1952 Easy
..别想太复杂..
数论还有一些比较难的题.. 省选后再说??
[2017.4.23]
2007: [Noi2010]海拔
对偶图+最短路,详情看那篇什么《最大最小定理》?? 哎我忘了
2709: [Violet 1]迷宫花园
二分+网络流判断
2753: [SCOI2012]滑雪与时间胶囊
从高到低排序边,那么那些边都可以当做无向边了.. 最小生成树就行了
3144: [Hnoi2013]切糕
比较经典的模型
哎真的是越到省选越颓废啊..
[2017.4.24]
测试了一场.. 感觉离退役不远了0.0..
3661: Hungry Rabbit
贪心.. 每次尽量选那些能到更远的点的人
*51nod 1149 Pi的递推式
把它拆开发现每层只有$i$个点
找底层的点,求他们的贡献
*3470: Freda’s Walk
如果不删边的话就是这么个公式$f_x=\dfrac{\sum(1+f_y)\times s_y}{\sum s_i}$
发现删边只会影响到$x$到$1$的点,而且影响是对$x$的影响乘上从$1$到$x$的概率
就可以$O(1)$算了
[2017.4.25]
做省选题练练手??
4813: [Cqoi2017]小Q的棋盘
呀我真的要退役.. noip难度题我不会做..
假如最后走$maxdep$的点肯定是最优的,那么剩余的走都会花费$2$..
*4815: [Cqoi2017]小Q的表格
发现改$(a,b)$会影响到$gcd(a,b)$的所有点,那么只需要记录对角线上的$n$个点
化出这么个公式$Ans=\sum\limits_{d}p(d)\sum\limits_{i=1}^{\lfloor\frac{k}{d}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{k}{d}\rfloor}ij\epsilon((i,j)=1)$
然后不要反演,发现后面的式子其实可以线性筛
具体就是前后的差是积性函数..
4816: [Sdoi2017]数字表格
化出公式$Ans=\prod\limits_{D}\prod\limits_{d|D}f(d)^{\mu(D/d)\lfloor n/D\rfloor\lfloor m/D\rfloor}$
然后就.. 就分块搞搞..
*4817: [Sdoi2017]树点涂色
每个点维护到根的非重边的条数,其实就是颜色数-1,线段树维护一下
1操作就是access啊..
2操作就找lca作差 3操作就dfs序求区间最大值啊
[2017.4.26]
4818: [Sdoi2017]序列计数
很容易想到dp方程,然后暴力卷积倍增优化就行了
4819: [Sdoi2017]新生舞会
二分答案费用流判断
*4820: [Sdoi2017]硬币游戏
嗯la1la1la写了题解..
诶可能这是最后一次写blog了.. 就快要退役了.. 今天看前两年的GDOI题都不会啊qaq..
总结??
呀还总结什么啊.. 都快退役的人了..
嗯讲道理这一个半月学的也挺多??学会了打单纯形、KM、带花树、SAM、LCT、FFT的板子??
然后瞎搞了MillerRabin和PollardRho.. 但是没用过这东西AC题目啊..
矩阵相关的也搞了一些.. 就是类似于行列式、矩阵树定理.. 哎啥都不会..
到了省选前两天.. 自己还是很多不会,说考完省选退役一点不过分..
其实真的很难坚持.. 具体原因不多说..
哎希望省选能好点吧.. 明天好好复习板子..