自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

santongding

一名普通oier的刷题随笔

  • 博客(31)
  • 收藏
  • 关注

原创 gym101620_by_santongding

A题意:题解:模拟代码:AB题意:在平面第一象限中原有n个a点,同时按顺序出现m个b点,每出现一个b点以其位置为中心,向x,y轴垂直画射线,若射线碰到之前其他b点画的线则停止.问每个b点出现时其画的射线与坐标轴、其他b点画出的射线围成的闭区域中有多少个a点.b点所有x坐标互不相同,所有y坐标互不相同.题解:考虑离线做法,先求出所有b点都画完之后每个b点所属区域中有多少个...

2020-04-02 20:29:45 210

原创 ACM 各种模板整理

线段树(示例为区间加区间求和)template<typename tp,typename tpc=tp>class segment_tree{ #define lson l,mid,rt<<1 //简化操作 #define rson mid+1,r,rt<<1|1 private: int maxn; //设置线段树长度 tp *sum; //...

2019-08-05 22:42:22 492

原创 stl手写合集

水平不够写得和stl差远了。。只能说是基本实现其功能吧。。。现在对c++的了解基本是0,等以后系统学习之后也许会慢慢完善。 vectorstruct vtr{ int *s,*e; int memsize,cnt; vtr(){ memsize=2; e=s=new int[memsize]; cnt=0; }...

2018-08-05 23:39:12 864 1

原创 后缀自动机(&广义后缀自动机)学习笔记

前言(=废话) 之前听zrt大佬讲过一次后缀自动机,当时他重复讲了好久我还是没听懂;最近想平复一下心情,于是选择硬啃一波后缀自动机;然后因为这玩意真特么难,打算写一篇正式点的笔记记录一下。。。当然因为个人能力原因,只能用一些形象化的语言来描述一下,并且不保证都是对的。。。只是便于理解;并且我不会去讲理论复杂度以及原理那一套,我相信别人讲得比我好得多orz,然后我就口胡一波我理解的构造过程把。。。

2018-04-27 23:27:33 1835

原创 吉司机线段树(segment tree beats!)

sdoir1考挂,本来都要退役了。。。结果还是进了二轮末尾。。。打算混个D类去养老;最近有点颓,需要写些东西和学些新东西止一下颓势,就先把这几星期前学的神奇线段树写了吧。。。吉司机线段树主要是用来解决序列区间上满足部分满足一定性质的修改操作的,比方说把区间中小于x的数改成x,大于x的数改成x,甚至是区间取并和区间取或(实际上也就是区间中的每个数的每一位进行类似小于x改成x那种操作)这玩...

2018-04-24 00:31:35 8798

原创 高斯消元与概率相关

今天在集训时听大爷们讲题听到了sdoi2017r1硬币游戏的部分分做法,发现自己一点不会,赶紧学了一波;首先一道板子题:bzoj3270 博物馆这里其主要思想是根据边的转移方向列出一个方程,详细的方程解释这位大佬说的很清楚:题解这里我主要再说一下烦了我很久的细节问题;首先,直接通过转移得到的矩阵并不是最终要求的;看一下转移方程的形式,以当前状态i为例; 一开始直接写成的是xi...

2018-03-31 00:20:19 311

原创 [雅礼集训]program(鬼知道原题叫什么名字。。。)

题面: 恩。。。部分分比正解难系列。。。目前还是没写出所有询问的r=n的部分。分类讨论太麻烦了。。。还是说正解: 恩我就是这么懒。。。感觉这一部分讲得肯定比我自己描述清楚;不过中间有个很重要的细节,由于当一个点为0时,如果立即将其删除,可能他的g[]数组就不会被标记上; 这时候就要延时删除一下; 同时判断一个”&lt;”或”&gt;”是否要删时就需要跳过中间正在被延时删除的...

2018-03-30 19:07:12 320

原创 bzoj 2957 楼房重建(线段树)

bzoj 2957 楼房重建这题是集训时讲到的,感觉不错就做了做;先把每个楼的高度除以xi,这样得到的斜率ki,然后求一个从左往右开始左边优先选的最长上升序列;首先我想到的做法是,用线段树来维护,每个点存当前区间内合法的那个序列的最小值和最大值以及长度,每次改完一个值一路update上去,update时先把左区间的答案加上去,再在右区间内找一段大于左区间合法序列的最大值的合法序列;...

2018-03-29 22:18:50 189

原创 [noip2016]天天爱跑步(主席树+lca)

恩。。在百度的第一页翻了翻,没有用主席树做的,于是打算水一篇blog;天天爱跑步首先有一个解题的关键; 将玩家的向上和向下分成两部分;先定义几个变量,s是起点,t是终点,wi是每个观察员出现的时间,i是当前节点,d[]是节点深度; 通过手玩可以发现,当玩家向上走时能否被i观察到当且仅当d[s]=d[i]+w[i],向下走时能否被i 观察到当且仅当d[s]-d[lca(s,t)]*2...

2018-03-29 22:05:17 288

原创 bzoj4919 大根堆(线段树合并)

bzoj4919也是雅礼集训考的一题。。。似乎不必要用线段树合并,用个set也能又好又快的水过去。。。先考虑最简单的树形dp怎么做;设dp[i][j]表示当前在i节点并且选的最大不超过j的答案是多少;考虑用动态开点的线段树来维护dp数组 对于每一个节点,只需要先把其儿子的dp数组加起来,这就对应线段树合并操作;又因为我用的标记永久化,每一次修改对应区间直接相加;再根据自...

2018-03-28 19:10:13 1222

原创 [雅礼集训]xiz(字符串匹配)

题目描述: 给定字符串 S 和 T, 定义两个字符串匹配当且仅当每种字符的数量相等, 求 S 的哪些连续子串与 T 匹配. 字符集大小,字符串S,T长度小于等于100w;这个题面不大完整,他要求的匹配是指对应位置的在各自字符串中都是同一种数; 例如 3 1 3 和2 4 2,3和2对应,1和4对应,所以匹配; 3 3 1和2 4 2虽然数目相等,但位置...

2018-03-26 22:03:20 2164

原创 [雅礼集训]bsh(分治)

题目描述: 给定一个正n边形及其三角剖分, 共2*n-3条边( n条多边形的边和 n-3 条对角线), 每条边 的长度为1. 共 q 次询问, 每次询问给定两个点, 求它们的最短距离. n&lt;=52000,1&lt;=q&lt;=2n这题思路挺简单的(但我太弱考试的时候还是没做出来。。。 考虑分治,每次选处于当前多边形最中间的那条边把当前区域分成两半; ...

2018-03-26 19:43:15 318

原创 [雅礼集训]arg(三进制状压dp)

题目描述:给出一个长度为 m的序列A, 请你求出有多少种1……n的排列, 满足A是它的一个LIS. (1&lt;=m&lt;=n&lt;=15)题面异常的简洁,身为蒟蒻我也是第一次接触这种三进制状压dp(考场上当然只打了暴力稍微转化一下问题,就是求序列A在1……n的排列中并且n的lis等于m;看到15的数据范围再加上计数问题很容易就能想到状压dp,而我考试时只往二进制方面去想了,甚至想...

2018-03-25 21:20:44 408

原创 莫比乌斯反演常用套路整理

(注意,以下除法若未说明自动下取整) 首先放一个莫比乌斯反演常用的两条公式以及证明:莫比乌斯反演定理证明(两种形式) 其中主要用到的是这一条(为了强化记忆我专门手打了一遍 G(d)=∑d|nF(n)==&gt;F(n)=∑n|dμ(d/n)∗G(d)G(d)=∑d|nF(n)==&gt;F(n)=∑n|dμ(d/n)∗G(d)G(d)=\sum_{d|n}F(n)==>F(n)=\sum_{...

2018-03-24 17:46:57 1154

原创 bzoj 5091 摘苹果

BZOJ 5091 一道毫无编程难度的题,再不写点啥就说不过去了。。。 在雅礼集训上听大佬讲了一波,感觉应该还挺好写?于是手算想通之后果断水了一波; 首先设个状态,f[j][i]表示当前走了j步到i节点的概率,f[0][i]显然就是第一步到j节点的概率,等于di/2*m; 那么答案就是∑k=1K∑i=1nf[k][i]∗ai∑k=1K∑i=1nf[k][i]∗ai\sum_{k=1}^{K...

2018-03-23 22:10:07 227

原创 三元环&哈希表

标题这俩东西看起来似乎八杆子打不着,不过只是我在学三元环的时候才刚学到哈希表是个什么东西。。。 关于三元环的解法感觉Claris写的就很不错→%%Claris 我在这里再简单的说一下复杂的相关; 首先可以改成单向边,全都改成由大的点指向小的点(我自己写的是相反的。。。)然后枚举每一个点i,再枚举这个点的出边,如果连出的这个点(设为k)出度小于sqrt(m)的话,再暴力枚举一下另一个点,只看这...

2018-03-15 00:28:17 690 1

原创 点分治 学习笔记

点分治这东西虽然很早就打过一次板子,但一直理解的不透彻,而且再去看之前写的那个板子居然写的是n^2暴力。。。然后今天又重新学了一遍 点分治的思想和树链剖分很类似,将一颗树尽可能均匀的分开,再合并答案,如果分开的那个点找的好的话复杂度就是nlogn的(不算其中答案统计的复杂的) 而要找的这个点就是重心,很容易就能脑补出,如果一个点是重心,那么以这个点为根的向下走一步的所有子树中节点数的最大值最小...

2018-03-09 00:24:48 188

原创 CDQ分治学习笔记

今天学了一下cdq分治,感觉这东西真的挺好用的,赶紧写点东西怕以后再忘咯 其实类似于cdq分治的东西在oi早期学排序的时候就应该学过,那就是归并排序; 归并排序的原理和cdq分治大体一样,先划分成两个区间,递归解决两边,再合并起来; 并且用归并排序求逆序对的时候本质上就是在解决一个二维偏序的问题; 首先回忆一下归并排序是怎么求逆序对的; (我太弱了不大好描述。。。归并排序相关网上找找就好...

2018-03-03 00:39:32 591 4

原创 线性基 学习心得

线性基根据我的理解就是从一组n维向量中找尽可能少的几组向量并且能够表示出空间内的所有向量; 首先,n维空间的基底肯定是n个向量的,这个通过二维或三维脑补一下就能想到 那么最简的一组基地是从原点出发向n个方向分别延伸的这n个向量; 但是根据给出的向量一般是不容易转换成这种形式的; 根据高斯消元的相关知识可以知道,一组向量之间的相加减是不会改变整体的关系的,也就是说这组向量的线性基不会变; ...

2018-02-25 00:03:01 204

原创 斜率优化dp 队列版 专题学习小结

搞了一天的斜率优化,也算是有点入门吧。。。 斜率优化的题一般有个特点,在优化之前大都是区间dp的形式; 不过我只学了队列优化形式的,对于用栈来优化的还没有做过(蒟蒻逃 如果知道一个题是斜率优化dp,那么十有八九是做不错的,就我所做的裸的斜率优化dp大都遵循一个套路(那种套数据结构套cdq的另说) 首先必须要会推暴力的dp公式 然后再化简成d+kx=y的形式(没错我就是喜欢倒着写) 首先...

2018-02-23 22:43:12 177

原创 BZOJ 1030 ac自动机+dp

题目:文本生成器 头一次做这类题目,果然智商又不够用了 我认为主要思想是将一个虚拟的串在ac自动机上进行匹配,再把匹配的状态记录下来,而不用生成所有的串一个个进行匹配,因为前缀相同的串在ac自动机上匹配的结果是相同的,只需要在相同前缀的分支后边进行26种不同的选择,每一种再分别对应到ac自动机上的一个状态; 而dp[i][j]就是记录的长度为i,能够匹配到j的不合法串 (答案就是总的可能串...

2018-02-20 16:55:09 149

原创 BSGS 大步小步 算法学习心得

学完才发现其实并没有那么复杂,但中间还是有很多地方困扰了我很久orz; 先安利一名神犇的博客:BSGS; 首先,大步小步的思想有点像分块,将整体划分成根号n块,再对每一小块中的根号n种取值找一个最优值; 如果看完了我安利的那篇博客的话,应该是能够自己写出随处取逆元的写法了; 但是这样的做法太慢,考虑怎么把取逆元的过程除去; 首先定义一下符号,求下式的最小整数解 ax≡b(mod&nbs...

2018-02-15 17:34:27 644

原创 hnoi2017 礼物

题目:hnoi2017 这题还是比较可做,手玩一下就好了 设改变的亮度为c; c的取值范围为-100到+100; 其中一个子串每个亮度为Xi,另一个子串为Yi ans=∑i=1n(Xi−Yi+c)2ans=∑i=1n(Xi−Yi+c)2ans=\sum_{i=1}^n (X_i-Y_i+c)^2 平方展开得 ans=∑i=1n(Xi−Yi)2+∑i=1n(Xi−Yi)∗c∗2+∑i=1...

2018-02-12 23:34:28 278

原创 bzoj 4259 残缺的字符串

题目:bzoj4259 残缺的字符串 洛谷无需权限今天刚学的fft,于是专门找的这类题; 由于知道算法是什么,就奔着fft上想了; 比较容易就能得出,如果将模板串翻转位置之后,不足的位置补零再与要匹配的串做fft,那么得出的多项式中F[ i ]是所有下标之和为i的两个字符的乘积,而由于模板串后边的位置被补零,所以能够找到n-m个F[i]表示所有匹配情况; 接下来考虑怎么...

2018-02-12 21:09:06 385

原创 18-2-11 刷题心得

本来今天要学fft的,结果还是没看下去。。。看来达到我智商的瓶颈了QAQ 题目cqoi2011 动态逆序对 比较裸的树状数组套线段树,然而还是卡了我好久。 因为这题很友好所以不用离散化; 以位置为主席树的时间轴,权值为主席树上的区间建树; 那么每次加一个数的时候的贡献就是之前出现的数中值比这个数大的个数; 对于修改,套一个树状数组,将修改的位置对之后的影响用树状数组全部消...

2018-02-11 23:38:48 162

原创 18-2-10 刷题心得

又是刷水题的一天。。。题目:scoi2005 最大子矩阵 一个比较noip的区间dp,然而我还是脑残地卡了好几个小时; 这题数据范围比较小,有很多不同的做法; 我的做法是dp[i,k,j,o]表示当前扫到了前i行,选了k个矩阵,状态是j,o的最大值; j,o的状态是指如果j=0,第2列第i个位置往前数o行一定没有被选;j=1,第1列第i个位置往前数o行一定没有被选; 如果j=2,指怎...

2018-02-11 00:14:04 185

原创 hnoi2015 开店

题目:开店 我是用的树链剖分加主席树的做法; 很明显对于每一次询问所求的值为 所有符合条件点到根的距离+出发点到跟的距离*2-所有点和出发点lca到根的距离; 其中前两项求一个前缀和和就好,而对于第三项,考虑静态情况下,将每个点到根的路径全覆盖一遍权值,然后一个点到根上所有被覆盖的权值和就是所有点和这个点的lca到根的距离,那么再加一个动态树,按照年龄动态加点,最后减一下就好; 不过这好像...

2018-02-10 23:50:28 195

原创 bzoj 4539 hnoi2016 树 倍增lca+主席树

题目:bzoj 4539 hnoi2016 树 为了做这题专门温习了一天的主席树,结果发现主席树在里边并不是主要作用? 主体部分基本一遍写过,不过这题很坑的是有几个地方需要开longlong,因为1e5*1e5能够爆int 读数的时候也得读longlong 思路:一开始我以为是递归似的合并,然后很差异这样树的大小是指数级的,后来才发现一直以一个模板树来复制。。。 这样就很好做了,将每个复...

2018-02-09 16:55:38 181

原创 可修改主席树 算法总结

题目:dynamic rankings 折磨了我一天的树状数组套主席树,可算是搞懂一些; 所以马上来写一些东西防止我以后再忘掉; 带修主席树总体思路就是让树状数组的每一个节点都是一颗主席树,由于主席树和树状数组都是利用前缀和思想实现的,所以树状数组上的求和与多颗主席树的求和等价; 再加点优化,先建一颗静态主席树,然后在树状数组上维护修改量; 感觉这题代码上不加点注释很快我自己就忘了orz...

2018-02-09 11:11:07 526

原创 18-2-08 刷题心得

本来早上在bz随机了3道题,打算用5个小时做一做,结果一道树链剖分就卡了我3h多,还一道主席树发现我只会个板子,实际上完全不理解,遂切到洛谷温习数据结构; 这一天颓了好几个小时,总共就做了3道题+2道树状数组的板子题(没错我到现在才学会树状数组,之前一直用线段树) 本来是要把树状数组套主席树给做了的,一直理解不能,也就只能留到以后了0.0;T1题目:bzoj 3999 旅游 一道几乎裸的...

2018-02-08 23:47:30 237 1

原创 bzoj 2964 boss单挑战 个人心得

明天还要期末考试今天还在浪。。。 题目链接:bzoj 2964 说来惭愧这题的思路是从网上找的题解看的,本来觉着很好写,真正写起来才发现有不少需要注意的地方; 主体思路是将法攻和怒功分开dp,本来以为关于恢复生命的技能的使用次数做个加减法就好了,事实上并没有这么简单,只好再进行一次dp; 由于本人太弱,实在想不起如何从i-1向i转移,只能从i向i+1进行向后转移,好像这样也易于理解? 其

2018-02-05 21:54:41 236

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除