题意:给n个硬币,其中有一个硬币和其他的硬币重量不一样,给出k次比较重量的结果。问是否可以将假硬币找出来。
解法:判断一个硬币是真币的方法(满足其一):
1、这个硬币出现过在=的两边
2、既出现在小于的一边过,也出现在大于的一边过。
如果排除这些硬币后只剩下一个,那么假币就是剩下的那个,否则就是不确定。
代码:/*******...
分类:
其他好文 时间:
2014-05-10 10:45:01
阅读次数:
469
一棵AVL树是其每个节点的左子树和右子树的高度最多差1的二叉查找树。实际高度只比logN多以一点,和普通二叉查找树相比,平衡二叉搜索树一般而言搜寻时间可节省25%左右(STL源码剖析P203)。
只有那些从插入点到根节点的路径上的节点的平衡可能被改变,因为只有这些节点的子树可能发生变化。
把需要重新平衡的节点称为a(左右子树高度差大于1)。注意,确定这个节点很重要,否则无法确定...
分类:
其他好文 时间:
2014-05-10 09:57:21
阅读次数:
406
生成器和普通函数有些区别,比如生成器不用return返回,而用yield来返回一系列元素
除非“召唤”生成器的next(),否则函数体里面不会执行任何代码块,上下文环境保存着。
虽然不需要明确定义__iter__()和next()方法,但是它本身包含这个方法。
当想要结束一个协程时,使用close()方法即可,close会在协程中引发GeneratorExit异常,这时候可以通过try/ex...
分类:
编程语言 时间:
2014-05-10 09:53:34
阅读次数:
317
??
业务流程用工作流软件管理系统来管理流程后,业务的流转都用流程的节点来标识。业务的办理信息在流程节点的表单中完成,录入,保存,业务流转,条件流,顺序流,分支流,并行流,等等。用工作流系统来管理一目了然。业务流程启动后,业务的流转就按照流程设计图来流转和办理。当后续业务有了修改后,流程就需要增加版本,不能直接修改原有的流程,否则已经运行结束了的流程实例就没有追踪的轨迹图了。正在运行的流程实例也...
分类:
其他好文 时间:
2014-05-10 09:25:19
阅读次数:
368
这两天较系统的看了下C++的基本用法,对比自己对Java理解,感觉就是C++特性远远多于Java,语法上兼容C,更加贴近系统和底层,对内存操作非常的灵活。如:
C++中类的对象可以开辟在栈空间中。Java类的对象都必须用new关键字开辟在堆中;
C++的基本数据类型也可以用new开辟在堆中。Java基本数据类型只能开辟在栈中,除非使用包装类包装成对象;
C++用new开辟的内存必须手动delete,否则内存泄露。Java则有著名的垃圾回收;
C++传参可以传值和传引用,也可以配合指针传对象地址,自己来决定。...
分类:
编程语言 时间:
2014-05-07 08:45:33
阅读次数:
353
1.同一个文件在每次调用输入输出函数时,都将产生一个新的ferror()函数值,因此在调用输入输出函数后应该立即检查ferror的函数值,否则信息会丢失。
2.使用临时文件中需要考虑以下两个问题。
保证临时文件间的文件名不互相冲突
保证临时文件中的内容不被其他用户偷看、删除、修改。
3.使用目录时需要考虑以下几点。
信息量大小。目录适合存放小的信息量,可以利用指针指向大的文件...
分类:
编程语言 时间:
2014-05-07 07:55:13
阅读次数:
329
信号量的数据类型为结构sem_t,它本质上是一个长整型的数。函数sem_init()用来初始化一个信号量。它的原型为:
extern int sem_init __P((sem_t *__sem, int __pshared, unsigned int __value));
sem为指向信号量结构的一个指针;pshared不为0时此信号量在进程间共享,否则只能为当前进程的所有线程共享;...
分类:
其他好文 时间:
2014-05-07 05:05:19
阅读次数:
307
安装rlwrap
下载:http://utopia.knoware.nl/~hlub/uck/rlwrap/
或者 百度云盘:http://pan.baidu.com/s/1ntM8YXr
需要先安装readline,否则会报一下错误:You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) t...
分类:
数据库 时间:
2014-05-06 19:36:00
阅读次数:
537
特殊权限SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者。chmodu+sFILE如果FILE本身原来就有执行权限,则SUID显示为s,否则显示S。如:chmodu+s/bin/cat如:ls-l/usr/bin/passwd-rwsr-xr-x它默认就有SUID,所以普通用户才能有权限来修改自己的密码。SG..
分类:
系统相关 时间:
2014-05-06 16:33:48
阅读次数:
545
Linux中有一个存放临时文件的目录/tmp(类似于Windows中的temp目录),每个用户产生的临时文件都存放在此目录下,也就是说每个用户对/tmp目录都应该有写权限(否则无法拷贝生成文件),这样造成一个问题,比如,小王在/tmp目录下创建了一个文件,小张看着不爽就可以删掉,这如..
分类:
其他好文 时间:
2014-05-06 16:02:30
阅读次数:
402