救赎之路

查漏补缺、朝着目标前进..


计划

矩阵多项式相关[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 基础数据结构练习题

neither_nor的blog

线段树维护最大值最小值、和

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」棋盘游戏

menci的blog

 

[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]时空穿梭

Po姐栋老师写了题解,嗯之后会独立写一篇吧

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题目啊..

矩阵相关的也搞了一些.. 就是类似于行列式、矩阵树定理.. 哎啥都不会..

到了省选前两天.. 自己还是很多不会,说考完省选退役一点不过分..

其实真的很难坚持.. 具体原因不多说..

哎希望省选能好点吧.. 明天好好复习板子..

posted @ 2017-03-20 11:11  Ra1nbow  阅读(1001)  评论(0编辑  收藏  举报