摘要:
通过参考大神们线段树的文章,准备开始要一个一个把上面的题目做一遍了,有很多都是原来做过的,现在也再次做一遍方便以后查阅打过 * 的表示对别人的想法有所参考,留待以后再做一次现在比起一开始接触线段树已经更为容易理解了,想到自己暑期集训的时候还是傻傻的背着线段树的格式在做题,不肯动脑子去思考代码含义,觉... 阅读全文
摘要:
网上下载到的Firebug最后得到的都是一个.xpi文件 这个文件直接从文件夹拖入火狐浏览器就可以完成安装了,但浏览器总会告诉你无法通过验证。。。。 这时候你只需要在火狐浏览器中输入about:config 打开后将xpinstall.signatures.required 首选项设为 false 阅读全文
摘要:
题目大意是在能够改变两个数的位置的情况下计算逆序对数 这因为是动态记录逆序对 本来单纯逆序对只要用树状数组计算即可,但这里因为更新,所以利用TReap树的删点和增加点来进行更新 大致是把每个树状数组所管理的点都放在对应的Treap树下, 这样x-=lowbit(x)下来,正好访问到是所有比他小范围下 阅读全文
摘要:
以下等式或者不等式均可以用数学归纳法予以证明! 1 + 3 + 5 + ... + (2n - 1) = n^2 1*2 + 2*3 + 3*4 + ... + n*(n + 1) = n*(n + 1)*(n + 2) / 3 1*1! + 2*2! + 3*3! + ... + n*n! = ( 阅读全文
摘要:
树状数组能够很容易求出前缀和 1.对于区间更新问题 我们要借用辅助函数来帮助自己 自定义一个函数add[i] , 表示将i~n的数都加了add[i]的值 那么将[s,t]区间都增加v,就很容易理解为add[s]+=v , add[t+1]-=v了 查询区间[s,t]的总和的时候就可以理解为: ans 阅读全文
摘要:
题目大意: 就是在二维的空间内进行单个的修改,或者进行整块矩形区域的最大最小值查询 二维线段树树,要注意的是第一维上不是叶子形成的第二维线段树和叶子形成的第二维线段树要 不同的处理方式,非叶子形成的线段树总是在自身的叶子处不能直接更新数据,而是要以一维下他的左右孩子对应的位置数据进行更新。 阅读全文
摘要:
题目大意: 希望求出走出最短路的方法总数,如果次短路只比最短路小1,那也是可取的 输出总的方法数 这里n个点,每个点有最短和次短两种长度 这里采取的是dijkstra的思想,相当于我们可以不断找到更新到的最短长度来更新其他长度,保证之前的所有可取的最短长度都已经更新的情况下,这样是除了第一个点的最短 阅读全文
摘要:
C题意:给定n个点(标号0~n-1)的度数(就是与其邻接的点的个数)和所有与它邻接的点标号的异或和,求满足这些条件的树的边应该是怎么连的,将边输出出来这里可以理解成拓扑排序的方式考虑,当i度数为1的时候,那么我们必然知道 i 肯定得与s[i]相连使其剩余的异或值为0所以建立一个队列不断将度数变为1的... 阅读全文
摘要:
题目大意:给定n个字符串连成了一篇文章,问每个字符串在这篇文章中出现的次数,可重复覆盖这里ac自动机和后缀数组都可以做当然后缀数组很容易就解决,但是相对时间消耗高这里就只讲ac自动机了将每个字符串放入ac自动机中,这里需要记录到达每个ac自动机上的节点出现这个状态有多少次而我们添加字符串进入的时候,... 阅读全文
摘要:
题目大意:在原串中找到一个拥有连续相同子串最多的那个子串比如dababababc中的abababab有4个连续的ab,是最多的如果有同样多的输出字典序最小的那个这里用后缀数组解决问题:枚举连续子串的长度l , 那么从当前位置0出发每次递增l,拿 i 和 i+l 开头的后缀求一个前缀和val , 求解... 阅读全文
摘要:
题目大意:给定n个字符串,求出现在不小于k/2个字符串中的最长子串。二分找对应子串长度的答案,将所有字符串链接成一个长字符串求后缀数组,记录每一个位置本属于第几个字符串,利用height查询的时候,根据记录的位置不断判断是否出现重复的字符串是在同一个字符串内的 1 #include 2 #in... 阅读全文