摘要:
eg:struct node{ char c ; int x ;};在你定义一个这个的node后, 系统给它分配的内存不是简单的就是sizeof(char)+sizeof(int)= 5 ; 而是采用内存对齐的方式 。首先在计算机中 , 会有一个默认的参数 , 即对齐膜数 , 一般默认... 阅读全文
摘要:
有一个方格 , 方格里面的每个格子要么是无底洞 , 要么有一根竖着m米长的棍子 , 现在在方格里面的某些棍子上面有青蛙 , 保证每个棍子上面只有一个 ,每只青蛙都要想办法跳跃出去 , 即跳到方格外面 , 现在告诉你青蛙的最大跳跃距离 , 并且对于每根棍子, 在青蛙跳跃后, 棍子的长度将减一, 问你至... 阅读全文
摘要:
两种操作, add:是向序列中加入一个数 , get是问第k小数是谁 , 可以用优先队列 , 也可以用treap , 还可以用线段树 。线段树的做法为 , 先离散化 , 然后每次都往线段树中加入数 , 线段树相应的的点+1 , 然后可以二分找 。 思想很明显, 代码实现注意细节就行 , 不过我没去写... 阅读全文
摘要:
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2514、此题需要求在一个字符串中出现至少k次的最长子串, 如果有多个, 取rightmost... 阅读全文
摘要:
一道非常经典的题目 , 求至少在超过一半的字符串中出现过的最长子串 , 并且按字典序删除 , 方法有很多种 , 后缀数组也可以 , 在绝大多数的后缀数组题目中 , 都要用到二分和分段的思想 ,二分长度,然后依据长度k分段 , 分段即把height数组分成多段 , 使得每一段中 , 如果有多个字符串,... 阅读全文
摘要:
题目是要求一个字符串中第k小的子串 , 如果想到一个子串必定是一个后缀的前缀 , 那么就可以用后缀数组来解决了 , 后缀数组记录着有序的所有后缀 , 而且每个后缀的不重复的子串数是确定的 , 就是n-sa[i]-height[i] , 如果不理解这个公式, 可以自己对照所有后缀去用笔画 , 既然这个... 阅读全文