摘要: 时间如水,转眼间2017年的暑假即将结束,仿佛昨天还在金实,明日却就要踏入金中的大门了。 回首初中三年,从初一的NOIP初赛崩盘,到初二的NOIP初赛满分,从初二在机房整天颓废,到初三中考前还在打SRM,一路走来,虽然很菜,但是看着自己水平一步步增长也有了努力的动力与冲向高峰的希望。 在高中学习一个阅读全文
posted @ 2017-08-19 19:04 Sakits 阅读(32) 评论(10) 编辑
摘要: CCZ在2015年8月25日也就是初三暑假要结束的时候就已经能切这种题了%%% 学习了另一种启发式合并的方法,按秩合并,也就是按树的深度合并,实际上是和按树的大小一个道理,但是感觉(至少在这题上)更好处理一些。 然后就用可持久化线段树来维护这个可持久化数组,就能做到可持久化并查集,可持久化平衡树,可阅读全文
posted @ 2017-08-23 15:10 Sakits 阅读(2) 评论(0) 编辑
摘要: 菜菜给题解,良心出题人!但我还是照常写SRM一句话题解吧... T1经典题正解好像是贪心...我比较蠢写了个DP,不过还跑的挺快的 f[i]=min( f[j-a[j]-1] )+1 { j+a[j]>=i , j<=i } 这个显然就是查询一个后缀的最小值,倒着做BIT查前缀就行了 T2建一个超级阅读全文
posted @ 2017-08-22 15:37 Sakits 阅读(9) 评论(0) 编辑
摘要: 题目大意:在数组中找出一些数,使它们的和能被n整除 这题标签是数学,那我就标题就写数论好了... 显然如果数组中有n的倍数直接取就行。 那假设数组中没有n的倍数,把数组中的数求前缀和后全部%n,会得到一堆1~n-1的数(注意没有0,有0直接就可以取这个前缀了),那根据抽屉原理一定有两个相同的数,设这阅读全文
posted @ 2017-08-21 22:38 Sakits 阅读(8) 评论(0) 编辑
摘要: 接上一篇,那个递推式显然可以用矩阵快速幂优化...自己随便YY了下就出来了,学了一下怎么用LaTeX画公式,LaTeX真是个好东西!嘿嘿嘿 如上图。(刚画错了一发。。。已更新 然后就可以过V2了 orz CZL卡常大师,我怎么越卡越慢啊QAQ #include<iostream> #include<阅读全文
posted @ 2017-08-21 16:12 Sakits 阅读(4) 评论(0) 编辑
摘要: 这题好像是神题...V1 V2 V3分别涵盖了51nod 5级算法题 6级算法题 难题 讨论区的曹鹏神牛好强啊...一种做法切了V1 V2 V3,而且做法是一步一步优化的 还没去看优化的部分,未优化已经能过V1了 设g(i)为结尾编号>n/2的长度为i的合法链的方案数,v(i)为长度为i的合法字符串阅读全文
posted @ 2017-08-21 15:13 Sakits 阅读(5) 评论(0) 编辑
摘要: 先写出朴素的DP方程f[i][j]=f[k][j-1]+h[k+1][i] {k<i}(h表示[k+1,j]有几个不同的数) 显然时间空间复杂度都无法承受 仔细想想可以发现对于一个点 i 从 k 转移了,证明了 1~k 中 k 一定是最优的,不论对于i或者i之后的任何点x都是如此,不存在对i最优但对阅读全文
posted @ 2017-08-20 17:26 Sakits 阅读(13) 评论(0) 编辑
摘要: 这题有离线和在线两种做法。 离线:将查询区间按左端点排序,预处理出所有数下一次的出现位置,一开始将所有第一次出现的数a[i]++,之后当扫到这个数的时候a[next[i]]++,相当于差分,给之后的位置答案+1,因为查询区间左端点排序了,所以再也查不到当前点,这个数对答案有贡献的区间只有右端点在这个阅读全文
posted @ 2017-08-20 16:58 Sakits 阅读(6) 评论(0) 编辑
摘要: 带修改的题主席树不记录前缀,只记录单点,用BIT统计前缀。 对于BIT上每一个点建一棵主席树,修改和询问的时候用BIT跑,在主席树上做就行了。 3k4人AC的题#256...应该不算慢 #include<iostream> #include<cstdlib> #include<cstring> #i阅读全文
posted @ 2017-08-20 13:02 Sakits 阅读(3) 评论(0) 编辑
摘要: 主席树(可持久化权值线段树)初探... 修改一个点只对树上logn个点有影响,所以新建logn个点就行了,总共新建mlogn个点。 查询一个区间[l,r],相当于将数一个一个加进树,询问第l到第r次操作,这个可以用前缀解决。 板子不慢。。在第三页,KPM写指针的主席树貌似跑的飞快 #include<阅读全文
posted @ 2017-08-19 17:48 Sakits 阅读(6) 评论(0) 编辑
摘要: 对于每一个i找到最近的j满足最大值-最小值>K,对答案的贡献为j-i,用单调队列维护最值即可 #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<algorithm> #include<qu阅读全文
posted @ 2017-08-19 13:29 Sakits 阅读(4) 评论(0) 编辑