摘要:        
做法是n&(n-1)。据说还有变态的查表法:http://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html。最后,居然必须用scanf/printf。#include #include using namespace std; int countOne(int x){ int cnt = 0; while (x != 0) { x &= x - 1; cnt++; } return cnt;} int main(){ int n; scanf("%d", &n)...    阅读全文
posted @ 2013-10-31 23:58
阿牧遥
阅读(169)
评论(0)
推荐(0)
        
            
        
        
摘要:        
由于思维的惯性,用了queue。后来发现一要注意要用集合判重,二是每次往queue里放的多,后来溢出了,要用long long。但这样要用数组,集合,队列,内存多。效率是O(n*logn)的。#include #include #include #include #include #include #include #define LEN 1505#define ulong unsigned long longusing namespace std; ulong dp[LEN]; int main(){ priority_queue, greater > que; set visi...    阅读全文
posted @ 2013-10-31 23:05
阿牧遥
阅读(198)
评论(0)
推荐(0)
        
            
        
        
摘要:        
Skip list(跳跃表)是一种可以代替平衡树的数据结构。Skip lists应用概率保证平衡,平衡树采用严格的旋转(比如平衡二叉树有左旋右旋)来保证平衡,因此Skip list比较容易实现,而且相比平衡树有着较高的运行效率。目前开源软件 Redis 和 LevelDB 都有用到它,它的效率和红黑树以及 AVL 树不相上下,但跳表的原理相当简单,只要你能熟练操作链表,就能轻松实现一个 SkipList。http://www.cnblogs.com/davad/articles/3049086.html空间复杂度: O(n) (期望)跳跃表高度: O(log n) (期望)相关操作的时...    阅读全文
posted @ 2013-10-31 11:51
阿牧遥
阅读(486)
评论(0)
推荐(0)
        
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号