摘要: 题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。输入:输入可能包含多个测试样例。对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。。n保证是int范围内的一个整数。输出:对应每个测试案例,输出一个整数,代表输入的那个数中1的个数。样例输入:345-1样例输出:1232分析:(常规算法)把1和n做与运算,检验n最右一位是不是1,然后把1左移一位检验n右边第二位是不是1,依次进行,就可以得出n的2进制中有多少个1. (惊喜算法)把n-1与n做与运算,会把n最右边一个1变成0,那么n的二进制表示中有多少个1,就可以进行多少次这样.. 阅读全文
posted @ 2013-07-29 11:19 丶Blank 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。斐波那契数列的定义如下:输入:输入可能包含多个测试样例,对于每个测试案例,输入包括一个整数n(1#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define REP(i,j,k) for(int i = j ; i < k ; ++i)#define MAXV (1000)#define INF ( 阅读全文
posted @ 2013-07-25 20:50 丶Blank 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。输入:每个输入文件包含一个测试样例。对于每个测试样例,第一行输入一个n(1=0)2. POP 从队列中pop一个数。输出:对应每个测试案例,打印所有pop操作中从队列pop中的数字。如果执行pop操作时,队列为空,则打印-1。样例输入:3PUSH 10POPPOP样例输出:10-1两个栈in和out,in是输入栈,out是输出栈。PUSH一个数压进in栈,POP一次从out栈弹出一个数,当out栈为空,in栈非空,则一次把in栈的数据全压进out栈,再从out栈弹出一个数。当out栈非空,则直接从out 阅读全文
posted @ 2013-07-25 20:39 丶Blank 阅读(207) 评论(0) 推荐(0) 编辑
摘要: LinuxYou can download the package and uncompress it manually. Alternatively, you can use the command line.For i386cd ~wget http://c758482.r82.cf2.rackcdn.com/Sublime\ Text\ 2.0.1.tar.bz2tar vxjf Sublime\ Text\ 2.0.1.tar.bz2For x64cd ~wget http://c758482.r82.cf2.rackcdn.com/Sublime Text 2.0.1 x64.tar 阅读全文
posted @ 2013-07-13 10:29 丶Blank 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入:输入可能包含多个测试样例,对于每个测试案例,输入的第一行为两个整数m和n(1#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define REP(i,j,k) for(int i = j ; i =1); ... 阅读全文
posted @ 2013-07-11 21:59 丶Blank 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 我们在编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而c++代码用g++,或者说编译用gcc,链 接用g++,一时也不知哪个说法正确,如果再遇上个extern "C",分歧就更多了,这里我想作个了结,毕竟知识的目的是令人更清醒,而不是更糊涂。误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的,例如:#include int main 阅读全文
posted @ 2013-07-11 16:59 丶Blank 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 在Linux下一会看到cc,另一会又看到gcc,感觉又点混乱的样子。它们是同一个东西么,有啥区别呢?一分为二地看:首先,如果讨论范围在Unix和Linux之间,那么cc和gcc不是同一个东西。cc来自于Unix的c语言编译器,是 c compiler 的缩写。gcc来自Linux世界,是GNU compiler collection 的缩写,注意这是一个编译器集合,不仅仅是c或c++。其次, 如果讨论范围仅限于Linux,我们可以认为它们是一样的,在Linux下调用cc时,其实际上并不指向unix的cc编译器,而是指向了gcc,也就是说cc是gcc的一个链接(快捷方式),看看下面的终端输出就明 阅读全文
posted @ 2013-07-11 16:57 丶Blank 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 很喜欢sublime text 2 总是在新窗口中打开文件,很麻烦,文件打多了,就会出现N多窗口,虽然可以直接打开当前目录可以解决,但有时候查看其它项目中的单个文件,就比较麻烦。百度一直在搜索,无果。今天去官方论坛看了一下,发现了一个设置:”open_files_in_new_window”: true,将其设置成false就OK了,会在当前窗口中打开文件具体设置:Preferences -> Settings – Default -> 搜索open_files_in_new_window,将其true 改为 false 后,重启一下sublime text 2 就OK。 阅读全文
posted @ 2013-07-01 20:05 丶Blank 阅读(335) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1671解析:还是字典树的练习,可以利用endFlag来指示数中的节点是不是手机号的最后一位。如先插入911,这时第二个1的endFlag就是true,再插入911xxxxxx的时候,插完91,发现第三个1也存在并且endFlag为true,直接返回0;如先插入911xxxxx,后插入911,则在插911的时候,插完91之后发现第二个1这个节点也存在,但是此时i=len-1,说明911是已插入某个手机号的前缀,返回0。#include <iostream>#include <fstream&g 阅读全文
posted @ 2013-06-07 17:14 丶Blank 阅读(218) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1251通过这道题学习一下Trie字典树.#include <iostream>#include <fstream>#include <vector>#include <string>#include <algorithm>#include <map>#include <stack>#include <cmath>#include <queue>#include <set>#include & 阅读全文
posted @ 2013-06-06 20:41 丶Blank 阅读(166) 评论(0) 推荐(0) 编辑