SPOJ
文章平均质量分 90
aozil_yang
这个作者很懒,什么都没留下…
展开
-
SPOJ DQUERY - D-query(主席树-区间不同数的个数)
大体题意: 给你n 个数,给你q个询问,每个询问问你某个区间上不同数的个数是多少? 思路: 主席树入门题: 简单记录一下: 这里先建立一个完整的线段树,这里的区间就代表区间了,不再是第几大了, 定义的sum 是这个区间上的不同数的个数有几个。 因为是主席树嘛,所以肯定要建立n 棵线段树,每个线段树是以每个位置的数为根,比如说该建立第i 个线段树了,如果这个数字之前没有出现过,那么我们原创 2017-03-23 20:58:56 · 3961 阅读 · 0 评论 -
SPOJ VECTAR1 - Matrices with XOR property(统计)
大体题意: 问你有多少个矩阵满足(i1,j1) and (i2,j2), if (i1^j1) > (i2^j2) then A[i1][j1] > A[i2][j2] 对1e9+7取模 思路: 当i1^j1 == i2^j2 的时候不能比较大小, 全排列就好了。 因此问题转换为有多少个i1^j1 == i2^j2 的位置,全排列乘起来就好了 #include #include #原创 2017-03-09 21:23:45 · 336 阅读 · 0 评论 -
SPOJ - DISUBSTR (后缀数组)
题意: 求一个字符串的不同子串的个数? 思路: 后缀数组算法: 每一个子串都是某一个后缀的前缀,那么问题转换为 求 所有后缀的不同前缀个数。 如果按照后缀数组 sa[0],sa[1],sa[2],,,sa[k]访问的话, 那么访问sa[k] 便会新加入n - sa[k] + 1个 前缀。 这些前缀中 有height[k] 是与前面重复的,减去即可。 #include #inclu原创 2017-04-26 21:39:30 · 414 阅读 · 0 评论