- 博客(47)
- 资源 (5)
- 收藏
- 关注
原创 cout的输出顺序
int c = 5; coutcout是从右到左依次求解,再输出的2 2 2 int a = 1; cout int b = 1; coutoutput:1 22 2如果是cout output:4 1 sizeof更像一个特殊的宏,它是在编译阶段求值的。举
2012-07-30 12:06:14 1341
原创 python
print '\n'.join( [' '.join([ '%d*%d=%d' %(y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)])output:d||d1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5
2012-07-30 00:29:33 598
原创 vector.resize
void resize ( size_type sz, T c = T() );Change sizeResizes the vector to contain sz elements.If sz is smaller than the current vector size, the content is reduced to its first sz elements,
2012-07-26 12:28:15 541
转载 旋转有序数组的二分查找
http://hi.baidu.com/nicker2010/item/4d4f71145532a234b83180a7总结规律,简化模型题目都不难,重要的是很敏锐的发现问题的规律。旋转有序数组的二分搜索,如int arr[N] = {15,16,19,20,25,1,3,4,5,7,10,14};查找X = 5主要思想:每次根据L和R求出M后,
2012-07-25 08:46:34 3256 2
转载 螺旋矩阵
参考:http://www.cnblogs.com/drizzlecrj/archive/2007/04/10/706784.htmlhttp://www.cnblogs.com/eshizhan/archive/2010/06/01/1749013.htmlhttp://blog.csdn.net/dennis101/article/details/3053739
2012-07-24 14:45:09 21591
转载 位运算
http://z466459262.iteye.com/blog/746166注意:任何语言中二进制是没有显示的表示的,所以如果需要使用二进制则只能用10进制(想成2进制),或者用string for(int i=0;iInteger a = i|(1 } String[] b = Integer.toBinaryString(a).
2012-07-24 08:55:36 1216
转载 c类型转换
http://learn.akae.cn/media/ch15s03.html在一个表达式中,凡是可以使用int或unsigned int类型做右值的地方也都可以使用有符号或无符号的char型、short型和Bit-field。如果原始类型的取值范围都能用int型表示,则其类型被提升为int,如果原始类型的取值范围用int型表示不了,则提升为unsigned int型,这称为Integer
2012-07-24 08:26:12 580
转载 C语言中的数据类型及其转换详解
http://www.cnblogs.com/jpcflyer/archive/2012/02/16/2353447.html1. C语言中的数据类型 C语言中的类型按其组成可以分为简单类型和构造类型,按是否预定义了类型名字和值集可以分为基本类型和非基本类型,按是否加了类型限定符可以分为限定类型和非限定类型。 ANSI C99标准中类型定义的BNF语法如下图
2012-07-24 07:35:52 1026
转载 printf
http://blog.csdn.net/happymawolf/article/details/6327776 void main ( ){ int d = 100; printf("%f/n", d); printf("%d/n", d);}第一个输出是0.000000,而另一个输出是正确的100。也就是说,明明是int类型的数据,你非要
2012-07-23 22:26:37 1203
转载 google笔试
转自:http://blog.csdn.net/wplxb/article/details/167428011. 找到单向链表中间那个元素,如果有两个则取前面一个。#include struct listtype{ int data; struct listtype * next;};typedef struct listtype * lis
2012-07-23 21:03:35 944
转载 异或的妙用
http://blog.leezhong.com/tech/2011/06/03/php-xor-find-num.html给你1-1000个连续自然数,然后从中随机去掉两个,再打乱顺序,要求只遍历一次,求出被去掉的两个数。这题其实挺为面试者的,因为要求1分钟内说出解法,且不能使用计算机、纸和笔。如果之前没有遇到过类似的题目,加上面试时的紧张心情,很难能在那么短的时间里想到解决
2012-07-23 20:25:11 9879 5
原创 awk
cat testset | awk -F '\t' '{print $1}' > rst1awk默认是[ \t\n]+对行切分,所以必须指定只用 '\t'awk的字段下标从1开始计数
2012-07-23 17:13:12 610
原创 卡特兰数
中文:卡特兰数 Catalan数是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。 原理: 令h(0)=1,h(1)=1,catalan数满足递归式: h(n)= h(0)*h(n-1) + h(1)*h(n-2) + + h(n-1)h(0) (其中n>=2) 该递推关系的解为: h(n)=C
2012-07-23 08:56:54 2360
转载 Effective STL 条款30
http://blog.csdn.net/amin2001/article/details/8063STL容器在被添加时(通过insert、push_front、push_back等)自动扩展它们自己来容纳新对象。这工作的很好,有些程序员因为这个信仰而被麻痹,认为他们不必担心要为容器中的对象腾出空间,因为容器自己可以照顾好这些。如果是那样就好了!当程序员想向容器中插入对
2012-07-21 14:30:25 841
原创 搜索--子集和
一个整数数组,长度为n,将其分为m份,使各份的和相等,求m的最大值 比如{3,2,4,3,6} 可以分成{3,2,4,3,6} m=1; {3,6}{2,4,3} m=2 {3,3}{2,4}{6} m=3 所以m的最大值为3解:poj 1011,搜索+强剪枝DescriptionGeorge took sticks of the sa
2012-07-19 22:57:45 680
转载 回溯法---子集和
http://blog.csdn.net/hustspy1990/article/details/6275725/*回溯法-子集和数问题 */ #include int M,n;int w[100];int x[100];void SumOfSub(int s, int k, int r)//w数组必须是递增的{ //s=w[1]*x[1]+...+w[k-1
2012-07-19 03:10:57 2096
转载 最大流
对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)某一个元素也加一,现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到。设棋盘是黑白相间的,每个黑点只跟周围相邻的白点联通,白点也只跟周围相邻的黑点联通,有一个共同的源S连到黑点,每条边的容量就是黑点上面的数字,黑点同白点之间的连线,容量都看作无穷大,所有白点都连到一个共同的汇点T,
2012-07-18 22:30:59 1098
转载 二叉树的非递归遍历
有些程序,不动手写,就不知道自己不会。前序和中序这里实现的有些问题,还是看北大的算法教程靠谱。不过,这里的后序还是不错的前序遍历static void PreOrderTraverse(BinaryTreeNode root){ BinaryTreeNode temp = root.left; Stack stack = new Stack(); Cons
2012-07-17 23:22:02 643
原创 c++虚函数以及虚继承图示
1. 一般单一继承只有一个虚表指针,虚表包含所有的虚函数思考:1. 如果将GrandChild中的h_grandchild前面的virtual去掉,内存中的唯一变化是虚表缺少一项GrandChild::h_grandchild2. 如果是child: virtual public parent?output:addr:0014FA44 sizeof = 28
2012-07-16 08:39:39 998
原创 c++虚拟继承
http://blog.csdn.net/bluedog/article/details/4711169先看下代码:struct A{ A(int v=100):X(v){}; virtual void foo(void){} int X;}; struct B :virtual public A{ B(int v=10):Y(v),A(100){
2012-07-13 21:20:01 973
转载 无向图的直径以及树的直径
转载:http://www.csie.ntnu.edu.tw/~u91029/Path3.html在一張無向圖上面,給定圖上一點,以最短路徑長度當作距離,找出離此點最遠的一點,這兩點之間的距離就叫做「偏心距」。要計算一張無向圖的直徑與半徑是很簡單的,首先算好所有兩點之間最短路徑,然後按照定義來算就可以了。先用floyd算法,再找最长的即可
2012-07-12 11:01:32 19383 1
原创 图的最长路径
1。 肯定不能用dijkstra算法,这是因为,Dijkstra算法的大致思想是每次选择距离源点最近的结点加入,然后更新其它结点到源点的距离,直到所有点都被加入为止。当每次选择最短的路改为每次选择最长路的时候,出现了一个问题,那就是不能保证现在加入的结点以后是否会被更新而使得到源点的距离变得更长,而这个点一旦被选中将不再会被更新。例如这次加入结点u,最长路为10,下次有可能加入一个结点v,使得u通
2012-07-12 10:58:44 31878 7
原创 图的连通性以及割点
首先明白几个定理:连通分量:无向图 G 的一个极大连通子图称为 G 的一个连通分量(或连通分支)。连通图只有一个连通分量,即其自身;非连通的无向图有多个连通分量。强连通图:有向图 G=(V,E) 中,若对于V中任意两个不同的顶点 x 和 y ,都存在从x 到 y 以及从 y 到 x 的路径,则称 G 是强连通图(Strongly Connected Graph)。相应地有强连通分量
2012-07-12 00:12:45 8208
原创 c++指针和数组
之前应该也写过类似的博客,今天又碰到类似的题目,又做错了,看来当时就没有透彻明白。 int a[10] = {0}; int (*b)[10] = &a; int** c = reinterpret_cast(&a); std::cout << a << std::endl<<&a<<endl<<&a[0]<<endl; std::cout << c << std::
2012-07-10 22:59:54 590
原创 linux脚本--输出占用内存最多的进程ID
ps aux |sort -rn -k4|head -1|awk '{ print $2 }'ps aux指令是将服务器内所有进程列出来sort -r 逆序排列-n 将字段作为数字-d 按照字典顺序排序-kn 按照第n个字段排序,注意这里是从1开始awk 打印字段,从0开始cat log | awk -F '.' '{print $1
2012-07-10 08:48:58 727
转载 飞机环绕地球
每台飞机只有一个油罐,飞机间可在飞行时相互加油。每罐油可使得飞机飞行1/2个地球圈。为使一台飞机环绕地球一周,现知道需要三架飞机,请给出飞行方案?3架飞机5架次,飞法: ABC 3架同时起飞,1/8处,C给AB加满油,C返航,1/4处,B给A加满油,B返航,A到达1/2处,C从机场往另一方向起飞,3/4处,C同已经空油箱的A平分剩余油量,同时B从机场起飞,AC到7/8处同B平分剩
2012-07-08 18:38:13 1114
转载 如何求两个向交矩形的交集的面积?
http://blog.csdn.net/yanleigis/article/details/3158223如何求两个相交矩形的交集的面积? 就是交接的公共部分面积?class Rectangle { Point min; Point max; } Rectangle rect1, rect2; Rectangle rect; 找到x
2012-07-08 17:04:59 4910
转载 编程之美 1.12 nim(2)
参考:http://tieba.baidu.com/p/613078798?pn=1有若干堆石头,A,B分布依次取,一次只能选择一堆,从这堆中选择大于0的石头,问:1,如果最后取光石头的人获胜,A在什么情况下获胜?2,如果最后取光石头的人失败,A在什么情况下获胜?1. 在规则1下,先手获胜的情况,在规则2下先手同样获胜2. 规则1和规则2的取法不一样。设当石
2012-07-08 14:47:50 836
转载 用8小时工作,用24小时思考
同样的工作,不同的人会有不同的绩效,差异在于业余时间的思考。李嘉诚,贫苦出身,但无论做什么他都可以做到最好,原因之一在于他总是比别人多想一些。真正了解客户需求是什么,核心业务是什么,如何去把握核心价值。聪明人只做最简单的事情,然后做到最好!
2012-07-08 13:00:29 781
转载 python+eclipse
http://www.codecho.com/two-ways-fo-installing-pedev-in-eclipse/很久没有接触到Python了。以前都是在用2.7版本的,这次索性就安装3.2的了。一般的小程序其实自带的IDLE就足够用了。但是其他的或者喜欢用Eclipse的,pydev成了最佳的选择。安装其实很简单的,这里介绍下两种安装方法。当然你首先需要安装JDK
2012-07-07 12:50:47 783
转载 1.11 nim
http://icyxiangzi.blog.163.com/blog/static/1697789052010102710296503/问题分析:没人每次可以拿一块,或相邻的两块。拿光者胜。必胜策略:若有奇数个,则取中间一个。以后跟着对手取,保持两边的对称性。若有偶数个,则取中间两个。扩展问题一:最后拿光者败。分析:设共有x个。x=1,败。 x=
2012-07-05 20:55:31 430
转载 基类转派生类
1、如果你以一个"基类之指针"指向一个"派生类之对象",那么经由该指针你只能调用该基类所定义的函数2、如果你以一个“派生类之指针”指向一个“基类之对象”,你必须先做明显的转型操作(explicit cast),这种作法很危险。3、如果基类和派生类都定义了“相同名称之函数”,那么通过对象指针调用成员函数时,到底调用了那个函数,必须视该指针的原始类型而定,而不是视指针实际所指的对象的类型而
2012-07-03 22:08:56 1453
转载 金刚做飞机
http://hi.baidu.com/maxint/item/209b9b2cea491e9db6326342问题现在有一班飞机将要起飞,乘客们正准备按机票号码(1, 2, 3, …N)依次排队登机。突然来了一只大猩猩(对,他叫金刚)。他也有飞机票,但是他插队第一个登上了飞机,然后随意地选了一个座位坐下了。根据社会的和谐程度,其他的乘客有两种反应:乘客们都义愤填膺,“既然金刚
2012-07-03 20:46:13 1103
转载 extern相关问题
http://hi.baidu.com/fandywang_jlu/blog/item/82f137f433a026e87609d70c.html时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif
2012-07-03 15:17:07 553
转载 线程同步机制有临界区、互斥、信号量优缺点
线程同步技术。 1. Critical Sections(临界段),源代码中如果有不能由两个或两个以上线程同时执行的部分,可以用临界段来使这部分的代码执行串行化。它只能在一个独立的进程或一个独立的应用程序中使用。使用方法如下: //在窗体创建中 InitializeCriticalSection(Critical1) //在窗体销毁中 DeleteCriti
2012-07-03 15:01:03 4799
原创 C++的clone函数什么时候需要重载
C++ Primer中的原话:只有析构函数应定义为虚函数,构造函数不能定义为虚函数。构造函数是在对象完全构造之前运行的,在构造函数运行的时候,对象的动态类型还不完整。在构造函数内部肯定不会出现多态现象。如转自:http://zhedahht.blog.163.com/blog/static/25411174201102642136998/:class A{publi
2012-07-03 14:03:42 2454
转载 拷贝构造函数
调用拷贝构造函数:1. 对象以值传递的方式传入函数参数class CExample {private: int a;public: //构造函数 CExample(int b) { a = b; cout<<"creat: "<<a<<endl; } //拷贝构造 CExample(const CExample& C) { a = C.a; co
2012-07-03 12:56:08 542
转载 洗牌算法
//洗牌算法 list = new ArrayList(); for(int i= 1; itotal; i++){ list.add(i); } for(int i=0; itotal; i++){ position = r.nextInt(
2012-07-03 08:42:58 534
转载 树形动态规划
树形动态规划的框架可以这样写:Proceduredfs(v); var i:longint;Begin vis[v]:=ture; for i:=1 to n do if father[i]=v then// 一般树形动态规划的操作是从叶子节点向根节点推导,所以必须要确定i时v的孩子
2012-07-02 23:39:54 2969
Learning to Rank for Information Retrieval and Natural Language Processing
2012-05-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人