2019年二月刷题列表

Preface

虽然二月剩下没多少了,但是为了勉强保持格式还是写一写吧

这个月的首要目标就是在剩下的时间里让这个月的做题数争取达到\(50\),不过感觉希望渺茫啊

初三中考百天倒计时要来了,所以为此我多获得了\(30\)分钟的晚自习(=去机房),还是很爽的

省选的知识点陆陆续续地差不多都过了一遍了,但是很多掌握的还是不够,最近继续主写LCT多项式吧,还有雅礼集训的题目也是很好的


2-20

今天早上报到,然后下了大雨坐公交就堵车迟到,几乎全身湿透。。。

期初考的三场感觉还好,像我这种寒假作业几乎未动的人都能勉强胡一个

晚上想都没想就去机房了,先开两道LCT:

  • Luogu P3703 [SDOI2017]树点涂色 这个染色的操作就是一个access的过程嘛!那么我们直接用splay维护所有颜色相同的链即可。2操作就是一个树上差分,那么既然要用到LCA了就顺带树剖一下得了,3操作就是子树最大值,DFS序上用线段树维护即可,每次access断边的时候修改即可。 sol
  • SP16549 QTREE6 - Query on a tree VI 这个系列的题之前一直都是用点分/边分写的,这次见到一道LCT神题。首先容易想到对两种颜色单独开LCT,这样询问就是子树大小。但是这样修改时遇到菊花图就跪了,所以可以用一个套路:化点为边,我们把点的颜色给父边,然后每次只改一条边即可。注意这里由于树的形态固定,所以我们要写不换根的LCT来维护父子关系。

然后写一个基环树的题,发现这个东西一直不是很策的来:

  • Luogu P4381 [IOI2008]Island 仔细观察题目其实就是一个基环树森林求直径和的形式。我们关于环分类讨论,首先把不经过环的答案(就是子树内的直径)用树形DP求出来,然后记下环上每个点向子树内延伸的最长链,在环上选两个点找到最大答案即可。这个可以容易用单调队列优化到\(O(n)\)

2-21

woc期初考终于结束了,真TMD爽。数学据说是原题大战?我中考卷买都没买,放了一堆题没做,目标\(100\)

科学挺简单,但是就是连着初一初二的姿势全考了,很多基础填空让我很方233333333

晚上到机房不是很想开LCT,于是就准备复习多项式,翻了下法老上次的课件发现多项式全家桶我还有这么多不会,就学了下多项式开根

  • Luogu P5205 【模板】多项式开根 和求逆一样递归解决(话说分治思想在多项式算法中无处不在啊)。强行化一波式子之后就是套路的平方增模数了,用NTT+多项式求逆套着分治跑,复杂度是\(O(n\log^2 n)\)

不得不说多项式的题目各种边界各种坑,动不动一个边界写错或者数组没清空就炸光了,调了好久。

决定改一下板子,把普适性加强一点(然后就变慢了)

然后就做了一道要用到开根的题:

  • CF438E The Child and Binary Tree 这种东西二话不说直接考虑生成函数,令\(F(x)\)表示答案,那么显然有\(F=F\ast F\ast C+1=F^2\ast C+1\),然后就是关于\(F\)一元二次方程,直接用求根公式算一下发现就是多项式开根+多项式求逆了,注意因为\(\lim_{x\to 0} F(x)=1\),所以取正值

补了补博客就没了,感觉今天都在调那个鬼畜的开根233


2-22

今天讲试卷,虽然基本上全炸了但是由于是周五还是很开心233

省选轮真的要来了,下次和下下次月考(如果在在HW的话)应该也可以逃了吧flag

所以现在还是得把精力全放在OI上啊

下午回家继续学习多项式全家桶系列,决定这次先把理论板子都过一遍在开始开题:

  • Luogu P4512 【模板】多项式除法 理论神仙东西,代码的话很良心不容易写错。主要是利用\(x^nF(\frac{1}{x})=F^R(x)\)来推式子,然后经过理论分析把余数先去了然后就变成多项式求逆+NTT了。发现库里还有很多又趣的函数什么reverse_copy之类的(懒癌犯了不想手动循环)

晚上打炉石,这个月好歹低保要上吧。然后3次渡劫全GG了,不过第4次一个很好心的守门员在要斩杀我的时候我狂发谢谢,然后他还是让了py警告

现在开始攒金币,准备新版本出来在买,不过可能要开始玩狂野了。现在可以多打打JJC练下水平。


2-23

早上以为要到机房的,很早就起来坐公交车,然后到了发现CXR他们都没来,但是ff_666和LTL两位天天虐我的神仙已经坐在那里大力切题了

早上想找一点关于多项式除法(取模)的练习题,但是发现这个东西基本上都是用来做多项式多点求值和优化齐次线性递推的,可以把\(k^3\log n\)的矩乘优化到\(k\log k\log n\)(太神仙了吧)

然后就写了Luogu上线性递推的板子,成功的学习+写+调了一个早上:

  • Luogu P4723 【模板】线性递推 首先我们发现矩阵乘法慢的原因就是因为它知道的信息太多了,我们完全没有必要知道整个矩阵,而只需要其中的一个值即可。然后用特征多项式化式子,多项式取模+多项式快速幂即可。注意取模的时候度数也要把超过的部分截掉。不过不知道到我\(1s\)内能出解的题目开了\(8s\)的时限。。。

下午不知道干什么,就继续写LCT题单了,然后就是SP的QT题:

  • SP16580 QTREE7 - Query on a tree VII 和上一个题其实差不多,还是维护同色联通块,我们还是把颜色给父边然后建出两色LCT。但是这里的信息变成了子树\(\max\),乍一看不可搞,其实和子树大小差不多。我们实边的信息可以之间维护,那么虚子树的信息直接开一个维护一下,要带删除的话两个STL的优先队列即可。

然后写的时候修改的时候只改了一个子树里的,然后WA到死。。。

接着看了下yekehe打麻将觉得这游戏真JB好玩,决定回去玩一下(不归路)

然后下午剩下的时间和晚上基本上都拿去写一道ynoi了:

  • Luogu P4690 [Ynoi2016]镜中的昆虫 不明觉厉ynoi2016 solve all。。。话说我打Galgame的时候HS基本上都是C的。这题其实就是区间带修数颜色,数颜色的一个套路就是每个点维护这个颜色上一次出现的值然后主席树统计即可。那么修改怎么办?树套树啊,外面套一个树状数组即可。区间修改呢?利用摊还分析(个人感觉可以结合LCT的复杂度分析)发现修改次数不超过\(n+m\)次,那么直接化成单点修改的即可。维护区间的话还是set好用。

然后晚上不知道干什么就走A了Luogu试炼场的位运算,把其中两道稍微有点水平的题记一下吧(不要说我刷水题QAQ):

  • Luogu P2114 [NOI2014]起床困难综合症 NOI签到题。发现这三种运算的一大特点就是二进制下每一位互不影响,那么我们直接贪心从高位到低位搞即可。每次如果填\(0\)最后可以变成\(1\)就填\(0\)。否则如果允许并且这一位填了\(1\)可以让最后变成\(1\)也填\(1\),因为后面即使都是\(1\)也不如这一位打。直接\(n\log a_i\)搞即可。
  • Luogu P2396 yyy loves Maths VII 状压DP卡常题。首先\(n\le 24\)首先想到状压,我们令\(f_i\)表示用了的卡片状态为\(i\)时的答案,那么转移可以枚举二进制下去了一个\(1\)后的情况来转移。但这样的话\(2^n\log 2^n\)是过不去的,那么我们考虑优化。每次转移其实就是去掉\(1\)的过程,那么直接删\(\operatorname{lowbit}\)转移即可卡过。

晚上回去就入了麻将的坑,从9点打到第二天2点。感觉过于好玩玩了两个小时就氪了\(30\),可惜什么都没抽到。。。(ORZ JZ \(30\)就中了\(3000\)的角色)

不过知道了yekehe氪了\(128\)什么都没中的时候我就露出了快乐的笑容233


2-24

早上很早就起来打比赛了:ZJOI2019模拟赛(十一)02.24,但是完全没有兴致只想打麻将(中毒警告)

开题之后把所有题都看了一遍,一眼看出T3SB题,\(O(n^2)\)找出交点之后判一下每个点经过的线段个数即可。

由于我懒得化式子(实际上是可以的),直接开了set维护线段,这样多一个\(\log\),不过还是能卡过。

值得注意的是直接用double存点可能会被卡精度,手写分数就好了。

然后看T2,暴力DP开个vector优化好像就有\(40\)了,然后剩下有\(20pts\)可以用\(8^n\log t\)矩阵乘法写掉,那么一看\(60\)了就没认真想了,写完走人(其实在想一下就会发现是个FWTSB题)

接下来忍不住就打了好久的麻将233,打的时候也对T1有了点想法,不过可能要矩阵求逆,那东西我不会啊!

然后回去码了T1最裸的暴力,一看\(n,m\le40000\)是不是给卡常选手准备的,然后想搞这个。

但是发现如果数据可以针对的话是绝逼要T的,然后想了一个比较诡异的最坏\(O(\frac{m^2}{4})\),实际复杂度远远达不到的优秀暴力,就是区间求交然后化成前缀和来做,成功快了\(4,5\)

然后又打了下麻将就想到了\(60\)分的做法,\(r-l\)定值的话可以固定端点用set维护区间,这样直接静态扫描线即可,不过没时间写了(所以不能打麻将上瘾233)

最后和估计一样\(40+60+100=200\)收场,Rank2涨了一波分,不过还是要ORZ大力AK的X_o_r大佬,虽然题目简单但是还是很可怕,爆踩我这种暴力休闲选手。

然后就改了T1,可以用类斐波那契数列的性质维护矩阵来做,不过需要魔改线段树的写法。

晚上开始刷LCT题单的最后一部分,特殊题型是SMG啊,神仙题吧:

  • Luogu P3613 睡觉困难综合征 不是ynoi但还是lxl出的神题。其实就是那道NOI水题的树上多组链询问带修改版本,我们考虑贪心的时候其实只要维护全\(0\)或全\(1\)走过路径的情况即可。那么问题就变成树上维护路径,本来直接上LCT的复杂度是\(O(kn\log n)\),但是可以把所有信息压在一个unsigned long long里实现\(O(n\log n)\)的复杂度(无需卡常的lxl毒题)

2-25

woc这个月都要结束了,看来省选真的要来了。

今天中午到机房补了一波博客,然后顺手A了昨天比赛的T2。不过那个模数貌似不是质数,不能用费马小定理求逆元,被坑了好久。

晚上想复习一下虚树那一套理论,就去写了一道题:

  • Luogu P3233 [HNOI2014]世界树 和之前机房比赛的一题很类似但是要更难些。首先虚树是肯定要建的,然后我们考虑DP。首先求出虚树上每个点被那个点控制,然后讨论虚树上一条边\((x,y)\)的情况,直接分同属和非同属讨论即可。那个除虚树外子树和可以倍增求之,总复杂度是\(O(\sum k\log \sum k)\)的。

码量比较大,写和调一共花了两个多小时,心力憔悴。。。

然后又是刷试炼场的水题,这次是最后一个版块:单调队列(不过这类题目我一般不用单调队列写):

  • Luogu P2698 [USACO12MAR]花盆Flowerpot SB题,刚开始看错题意想了好久的分裂线段树(无脑选手暴力做题法)。后来搞懂题目之后发现这个可以用那个普及组算法——尺取法RMQ搞一下即可。不过不得不说尺取法的思想还是很好的。

Postscript

25号QQ上和LTL聊了下,发现他已经停课了,而且老叶也三番五次让我们初三的快点停课,所以我觉定——开始省选停课

作为可以说是决定自己这一年大致走向的比赛,\(ZJOI\)肯定是要好好准备的

如果能狗到SC的资格那么就可以更加专心有目标的走下去,离签约就更近了一步。

如果挂了只能滚回TG准备联赛了,把冬令营的名额拿下来。

不管怎么说,真正的战斗开始了,我也要拿出斗志信心了!

不要问我为什么这个月的博客这么短,一头一尾都被砍了能不短?

posted @ 2019-02-21 18:07 hl666 阅读(...) 评论(...) 编辑 收藏