2017,11,12月题目小结

本文总结了清华集训期间解决的多个算法问题,包括后缀平衡树、数位DP、斜率优化、字符串处理等技术,并针对每道题目提供了详细的解题思路与技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近没什么时间写博客,但还是要写点小结,加强印象。

JZOJ4384 hashit

后缀平衡树,注意重量平衡树的维护根,删除可以直接拉到叶子删掉。

11.25清华集训

这套比赛打的时候不严谨,要注意推式子时下标一定要检查好,不然很浪费时间。导致策略无法进行。

jzoj5480.【清华冬令营2018模拟】第一题

给一个一些位置不确定的数字n,求合法的数字,满足s_d(a)+s_d(b)=s_d(n)
发现a+b=10^n这条式子里面,只要枚举进位的位置,高位的每位加起来等于9,这样而且发现枚举了进位的位置,搞出来的a,b一定不会弄出相同的n,那么可以数位dp一下,考虑每一个d即可,特判一下0等。

jzoj5481第二题

乍地看是概率题,实际上推式子用斜率优化即可。
斜率优化记得考虑直线斜率或者截距的单调性。

jzoj5482第三题

考虑把点做成凸包,如果颜色间隔出现,那么肯定无法构造合法方案,否则可以用n^2调用函数(a,b,c)构造,其中a,b颜色相同,每次找一个和c颜色相同的在a,b,c三角形里的点,连边,递归。

下午的code+ div1 t3

考虑特殊条件,可以用方案数来当成哈希特征值,来检查是否满足性质,然后用bitset乱搞。

11.26清华集训

没有休息好,要加强自制力,ioi赛制要稳住心态,不要把重心放在别人身上,利用赛制带来的信息,而不是被信息掌控。
基础不是很牢固…看蓝书紫书补一补。

简单路径

两条路径xor和最大,直接n^2把所有路径弄出来匹配即可。

快乐树

可以直接看成是屏蔽根的一个联通块,然后其他权值直接取。dp即可。
不要拘泥于顺序,要宏观地思考题目,不要被题目的琐碎细节困住思想。

字符串

一个小结论,把n分成m段的答案肯定在m~m+26之间,然后用这个dp即可,其他的状态没有用。

搞字符串专题

4072. 【TJOI2015】弦论

SAM练手,DAG跑一下就算出第K大子串了。

3866. 【JSOI2014】回文串

manacher之后分类讨论,简单数据结构。

4022. 【CF319D】你听说过单词吗?

暴力是枚举长度每次O(n)寻找重复块嘛。注意到数据范围只有5w,我们仍然枚举长度,然后每len长度设立观察点,那么重复块可以用哈希来搞两个点之间的LCP和LCS提取出,注意删掉了一个重复块之后,下两个点的lcs不能取到那些位置。
每次长度标记了删除的位置之后可以直接暴力删除,分析起来是O(nn)

3351. 【NOI2013模拟】神牛养成计划2

正解是把前缀后缀排序之后作为特征值,然后转化为区间查询问题,用可持久化trie来搞。当然这个数据比较垃圾,用哈希nm碾过去就行了。

3260. 【GDOI模拟】Rotate

要找到字典序最小的循环同构串,长度才1e6,可以用线性方法,我省事直接SA找了。然后EXKMP完事。

2834. 【SCOI2012】喵星球上的点名

有种萎的做法是AC自动机,复杂度与答案大小相关。
正解是用SA来做,转化一下问题,要稍微容斥一下,最后变成查询某个点被多少区间覆盖。

清华集训11.28

错失rk1良机…审题很重要,想不出来要看多两次题目,第一题怎么可能这么难…

5489. 【清华集训2017模拟11.28】海明距离

把a一段区间从0修改成1,求原来全0的a与另一个数组b的不同的位数最少多少。直接DP,用区间转移就行了。

5490. 【清华集训2017模拟11.28】图染色

先做一轮,就可以把一些没用的东西扔掉,剩下的点做一轮又一轮,发现会出现循环节,研究一下,用suc[i]表示第一轮之后i点会变成什么颜色,那么会出现一堆环套外向数,那些环的大小就是循环节的因子,就是每轮染色,对于同一个点,原本在这轮中某个时刻颜色是x,下一轮就变成suc[x],那么相当于环上的所有点共享这个点的贡献。那么把每个环都看成同一种颜色做一轮(用时间戳优化),均分一下即可。

5491【清华集训2017模拟11.28】巴士通信

相当于在路径上均匀分布m个点,求某个时刻点i和点i%m+1最长的距离最小,输出距离。那么只有i点走到i+1点的时间time是有用的。我不会正解,我会暴力啊!
T=1e7,d=T/m,eps=time/d,每次O(m)暴力走,走出最小的那个时刻。
关键是走出之后还要缩小精度再在附近暴力一下,这样很能保证精度。

清华集训12.10

并不清楚这天我在干嘛

5498. 【清华集训2017模拟12.10】大佬的难题

容斥,你算出每个满足两个条件的方案,然后会有刚好C2n个不合法的点对,减掉除2就行了。

5499. 【清华集训2017模拟12.10】回文串

好像全程在刚这道题。
LCT动态维护回文树的信息。
回文树一开始先建出来,每次询问它只需要完成最长回文后缀或前缀的任务。没有删除,你离线处理出来先比较方便。在线处理也行,不影响势能的。

5500. 【清华集训2017模拟12.10】营养餐

通过观察性质,你差分之后就变成了树上石子游戏,随便做。注意bi=0是独立的,即多个游戏。

清华集训12.10(2)

5495. 【清华集训2017模拟12.09】MiniumCut

不要瞎考虑,考虑他是一棵树,最大生成树地生成一颗最小割树,不合法就不存在解了。我们知道, 最小割可以等价表示为最小割树

5496. 【清华集训2017模拟12.09】Tree

通过观察可以发现肯定是一个联通块比较小。K个点肯定是联通的。
观察发现,如果你往下转移的时候,下面那一块不包括头尾,那么这条边要被记录两次,否则只有一次。那么你往下走就不用考虑这么多了,头尾可以看成一种东西。 考虑往回走怎么弄。设f[i][j][0,1,2]表示i这个子树一共选了j个点,它包括的头尾情况。

5497. 【清华集训2017模拟12.09】塔

我是个傻子,打个可持久化回文树,实际上是傻逼哈希题。

12.23清华集训

4345. 【WC2016模拟】Fountain

你只需要知道一个形如CnDd的d的方案数,dp一下算就行了。

4346. 【WC2016模拟】Picture

一些比较复杂的容斥,通过转化,可以转化成可做的东西,然后对于各种下标和权值的重复加加减减。

12.25清华集训

可以看出实力不够。比较大的问题是第二题在一开始打的时候思路不清晰,想着打出来就可以对的,但是实际上有很多漏洞。以后打程序的时候不要急,水平不够慢慢来,正确性最主要。
对于题目模型的理解很重要,题意不清要多看两遍,你连信息入口都对接不好,做个鬼的题,生活上也是这个样子,一定要改正,一定要确保信息正确。

4347. 【WC2016模拟】K相等

还不会…

4348. 【WC2016模拟】打击目标

给你一棵树,每个点上有个长度不大于10的字符串。每次给出一条路径和一个串w(w<=100000),问路径上是w子串的最长串长度,强制在线。
用AC自动机匹配,每次统计暴力跳fail,最多跳10次,复杂度有保证。

4349. 【WC2016模拟】几何

处理出一个方案数组之后分治FFT。
方案数组用到了组合数公式Cxn+m=xi=0CinCxim
FFT卡常小技巧:预处理位移数组,预处理主次方根。

清华集训12.26

4350. 【WC2016模拟】废水回收(gates)

2sat,每个阀门为两个点。注意到缩点的顺序就是拓扑逆序。

4351. 【WC2016模拟】计数系统(stones)

这道题的启示是,暴力也要挑思路简单的。
用组合数算一些东西,比DP要快。

4352. 【WC2016模拟】Snow

你把T模一下mo-1,然后矩阵乘法优化一下寻址,上三角矩阵少枚举点东西。

清华集训12.27
4353. 【WC2016模拟】distance

KD树

4354. 【WC2016模拟】sunflower

复杂的讨论并用set维护

4355. 【WC2016模拟】digit

观察可以发现最小的东西可以通过形如a[i]=(2*l^a[i-1]+x)/(l+1)递推出来,不会数学方法…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值