<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[交流学习实践]]></title><description><![CDATA[不管走多远都不要忘记最初的梦想，共同努力吧！！！]]></description><link>https://blog.youkuaiyun.com/u010232171</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u010232171]]></copyright><item><title><![CDATA[Segment Sieve]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/50038265</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/50038265</guid><author>u010232171</author><pubDate>Wed, 25 Nov 2015 15:57:33 +0800</pubDate><description><![CDATA[地址：http://www.geeksforgeeks.org/segmented-sieve/
针对简单Sieve方法筛选素数时空间耗费过多的问题进行改进，从原来的O(n)降低为O(sqrt(n)).


Segmented Sieve


Given a number n, print all primes smaller than n. For example, if the ]]></description><category></category></item><item><title><![CDATA[Euler's Totient Function（欧拉函数）]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/50035067</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/50035067</guid><author>u010232171</author><pubDate>Wed, 25 Nov 2015 12:03:47 +0800</pubDate><description><![CDATA[定义欧拉函数ϕ(n)=count(p),p∈[1,n] AND gcd(p,n)=1\phi(n)=count(p),p\in[1,n]\ \mathrm{AND}  \ gcd(p,n)=1，其中count(p)count(p)表示满足上述条件pp的数目。公式ϕ(n)=n∏p|n(1−1p)\phi(n)=n\prod_{p|n}(1-\dfrac{1}{p}) 
其中，pp是nn的质因子（nn能]]></description><category></category></item><item><title><![CDATA[错排数]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/50000049</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/50000049</guid><author>u010232171</author><pubDate>Mon, 23 Nov 2015 19:53:57 +0800</pubDate><description><![CDATA[Count Derangements (Permutation such that no element appears in its original position)A Derangement is a permutation of n elements, such that no element appears in its original position. For example, a]]></description><category></category></item><item><title><![CDATA[快速幂取模运算(Modular Exponentiation)]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/49718551</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/49718551</guid><author>u010232171</author><pubDate>Sun, 08 Nov 2015 14:50:00 +0800</pubDate><description><![CDATA[不考虑取模的快速幂运算（迭代法）/* Iterative Function to calculate (x^y) in O(logy) */
int power(int x, unsigned int y)
{
    int res = 1;     // Initialize result    while (y > 0)
    {
        // If y is odd, multip]]></description><category></category></item><item><title><![CDATA[图的前插表示法（基于数组实现）]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/49718243</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/49718243</guid><author>u010232171</author><pubDate>Sun, 08 Nov 2015 14:07:16 +0800</pubDate><description><![CDATA[一般的表示方法
矩阵表示法：将所有点对的关系存储到一个矩阵中，如果树有NN个点，那么需要开辟N∗NN*N大小的矩阵
基于地址（或者vector容器）的链表法：将与点AA有关的边存储到AA的链表。一般选择这种方法，但是该方法需要不断的重新开辟新空间。随着图的节点增加时，需要为新节点创建空间，并添加到对应的链表中。
在需要重复构建不同的图的问题中，上面两种传统的方法，或者（图的数据结构）显得效率不高。分]]></description><category></category></item><item><title><![CDATA[POJ3764:The xor-longest Path]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/49703557</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/49703557</guid><author>u010232171</author><pubDate>Sat, 07 Nov 2015 17:11:41 +0800</pubDate><description><![CDATA[题目链接http://poj.org/problem?id=3764解题要点
树结构内任意两点u,vu,v间的路径权值异或和f(u,v)f(u,v)，具有如下性质 
f(u,v)=f(root,u)xorf(root,v)f(u,v)=f(root,u)\quad xor\quad f(root,v) 
其中，rootroot是根结点。
找到所有节点与rootroot的路径权值异或和f(root,i]]></description><category></category></item><item><title><![CDATA[Find the maximum subarray XOR in a given array]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/49685523</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/49685523</guid><author>u010232171</author><pubDate>Fri, 06 Nov 2015 17:13:22 +0800</pubDate><description><![CDATA[geeksforgeeks的一篇文章： 
http://www.geeksforgeeks.org/find-the-maximum-subarray-xor-in-a-given-array/题目大意给你一个大小为NN的数组AA，元素0<=Ai<=2310<=A_i<=2^{31}，即AiA_i是一个32位的非负整数。请寻找数组内异或和最大的连续子数组。注意：题目要求的是子数组，其中元素必须是连续]]></description><category></category></item><item><title><![CDATA[检测一个数组能否表示二叉搜索树（BST）的先序遍历]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/49642113</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/49642113</guid><author>u010232171</author><pubDate>Wed, 04 Nov 2015 19:13:19 +0800</pubDate><description><![CDATA[GeeksforGeeks的文章： 
http://www.geeksforgeeks.org/check-if-a-given-array-can-represent-preorder-traversal-of-binary-search-tree/题目大意：给你一个整形数组AA，大小为NN。你需要判断数组AA是否可能是一个二叉搜索树的先序遍历结果。题目分析：题目只需要你判断可能性。因此，我们需要]]></description><category></category></item><item><title><![CDATA[Beautiful Array]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/49245623</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/49245623</guid><author>u010232171</author><pubDate>Mon, 19 Oct 2015 08:38:08 +0800</pubDate><description><![CDATA[题目大意：一组整数AA,数组大小为NN。如果数组中所有元素相等，那么该数组称为“完美数组”（Beautiful Array）。现在给你一个“不完美”数组AA,并且你可以进行下面两种操作： 
1. 选择不同的两个元素Ai,AjA_i,A_j，其中i≠j,1≤i,j≤Ni\neq j, 1 \leq i,j\leq N。对一个+1+1,对另一个−1-1（不分先后）。花费：kk元。 
2. 选择一个元素A]]></description><category></category></item><item><title><![CDATA[Basic Binary Indexed Tree]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/49226795</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/49226795</guid><author>u010232171</author><pubDate>Sun, 18 Oct 2015 12:18:04 +0800</pubDate><description><![CDATA[Advantages of BIT:

            - Use less
 memory than RMQ

            - Easy to
 code

            - Can be
 used in many problems about number sequence

            - Runtime:
 O(logN)]]></description><category></category></item><item><title><![CDATA[减小数组]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/49183371</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/49183371</guid><author>u010232171</author><pubDate>Fri, 16 Oct 2015 20:45:50 +0800</pubDate><description><![CDATA[转载网址：http://www.geeksforgeeks.org/find-minimum-possible-size-of-array-with-given-rules-for-removal/

Find minimum possible size of array with given rules for removing elements


Given an array of]]></description><category></category></item><item><title><![CDATA[XOR Groups]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/49176285</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/49176285</guid><author>u010232171</author><pubDate>Fri, 16 Oct 2015 11:11:48 +0800</pubDate><description><![CDATA[题目要求：给出一个整数组数AA，大小为NN。然后，将数组AA分割为两个部分A1A_1和A2A_2，且满足条件A1∩A2=∅A_1 \cap A_2 = \emptyset，A1∪A2=AA_1 \cup A_2 = A，A1,A2≠∅A_1,A_2 \neq \emptyset。计算有多少种分割方法，使得Xor(A1)=Xor(A2)Xor(A_1) = Xor(A_2)。其中，Xor(A1)=Xo]]></description><category></category></item><item><title><![CDATA[Find the Duplicate Number]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/48832149</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/48832149</guid><author>u010232171</author><pubDate>Wed, 30 Sep 2015 20:25:42 +0800</pubDate><description><![CDATA[Find the Duplicate Number（寻找重复数）问题定义给定一个数组AA，大小为N+1N+1，且所有元素均来自前NN个自然数(1,2...,N)(1,2...,N)。显然，必然存在一个元素Ai∈(1,2,...N)A_i\in (1,2,...N)出现两次以上，且我们规定有且只有一个元素出现两次以上。下面在分析时，将数组元素全部减一，方便描述和理解。要求： 
1. 不可改变数组AA的]]></description><category></category></item><item><title><![CDATA[插入排序中元素的移动次数]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/48530435</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/48530435</guid><author>u010232171</author><pubDate>Thu, 17 Sep 2015 21:57:43 +0800</pubDate><description><![CDATA[题目大意：根据插入排序算法的原理，计算每个元素的移动次数。例如：数组A=[2,1,3,1,2]A=[2, 1, 3, 1, 2]，那么按从左往右的顺序依次移动插入元素，他们的移动次数分别如下： 
shift(2)=0,shift(1)=1,shift(3)=0,shift(1)=2,shift(2)=1shift(2)=0, shift(1)=1, shift(3)=0, shift(1)=2, s]]></description><category></category></item><item><title><![CDATA[最长递增子序列的nlog(n)算法]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/48395625</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/48395625</guid><author>u010232171</author><pubDate>Sat, 12 Sep 2015 17:17:27 +0800</pubDate><description><![CDATA[最长递增子序列
问题定义
解决思路
测试题目
问题定义
输入 
一个非空整数数组AA，数组大小为NN。
输出 
数组 AA中最长递增（严格递增）子序长度。其中，子序可以是不连续的。
解决思路
动态规划 
动态规划的方法可以参考 《编程之美》里面第二章16题。 
核心思路：每增加一个新元素时，寻找比其小的所有元素，并找出以这些元素为结束的递增子序里长度最大的加一（此结果是以新元素结尾的最长递增子序的长]]></description><category></category></item><item><title><![CDATA[范围最大异或值]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/48392051</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/48392051</guid><author>u010232171</author><pubDate>Sat, 12 Sep 2015 11:05:57 +0800</pubDate><description><![CDATA[题目大意：给定范围 L
题目连接：https://www.hackerrank.com/challenges/maximizing-xor


题目解析：
思路一：
       如果问题的规模（R-L）很小的话，那么两层循环枚举所有情况是不错的解决方案。
思路二：
       如果问题的规模（R-L)较大，那么暴力枚举失效。这里给出位操作的方法，过程如下：
        设]]></description><category></category></item><item><title><![CDATA[AVL平衡树]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/48109565</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/48109565</guid><author>u010232171</author><pubDate>Sun, 30 Aug 2015 21:54:49 +0800</pubDate><description><![CDATA[AVL平衡树是一种二叉搜索树，且每个节点保持平衡。


节点平衡的标准是节点的左右子树高度的差属于[-1, 0, 1]之一。


另外，树的高度等于从根结点到最深叶子节点的步数。特别地，root=NULL，高度=-1；叶子节点的高度等于0。


如果树种某节点不满足节点的平衡标准，那么需要对不满足标准的节点进行旋转。
总共分四类：left-left，left-right，rig]]></description><category></category></item><item><title><![CDATA[codility minAveTwoSlice]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/47341061</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/47341061</guid><author>u010232171</author><pubDate>Fri, 07 Aug 2015 16:25:40 +0800</pubDate><description><![CDATA[题目网址：https://codility.com/programmers/lessons/3
题目大意：求一个数组中连续子段的最小平均值所对应的段落开始的下标，且下标最小（因为存在多种最小平均值的可能）。另外，输入数组的元素个数最小为2


题目分析：
刚看到题目的第一反应是“两个指针”的思路，但是在分析后发现，没有明显地升降规律。于是，考虑网上的答案，有如下面的解法。
      ]]></description><category></category></item><item><title><![CDATA[KMP字符串匹配算法的伪代码]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/46739011</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/46739011</guid><author>u010232171</author><pubDate>Fri, 03 Jul 2015 10:51:35 +0800</pubDate><description><![CDATA[KMP算法的图解：http://blog.youkuaiyun.com/u010232171/article/details/41945605
图解中的减法操作与下面的伪代码不同，应该以下面的代码为准


KMP算法的next数组求解：http://blog.youkuaiyun.com/u010232171/article/details/41961837





下面的伪代码出自《算法引论——]]></description><category></category></item><item><title><![CDATA[POJ 1703]]></title><link>https://blog.youkuaiyun.com/u010232171/article/details/46582107</link><guid>https://blog.youkuaiyun.com/u010232171/article/details/46582107</guid><author>u010232171</author><pubDate>Sun, 21 Jun 2015 15:10:28 +0800</pubDate><description><![CDATA[题目链接：http://poj.org/problem?id=1703
题目大意：两组犯罪团体，抓住N个人，他们属于且唯一属于两组犯罪团体之一。然后，给你M条信息，也分两类。D类信息说明id0和id1是不同组织的，A类信息是询问id0和id1的关系，包括不同组织，相同组织和无法判断。


解题思路：
       并查集，但简单并查集思路与该题目不符合。因为简单并查集会告诉你两个目标是相]]></description><category></category></item></channel></rss>