摘要:
做TopCoder SRM 576 D2 L3 题目时,程序有个地方需要对一个数大量求幂并取余,导致程序运行时间很长,看了Editoral之后,发现一个超级高效的求幂并取余的算法,之前做System test时,程序运行时间(最慢的测试用例)为500ms左右,使用此方法之后,运行时间直接减为20ms,快了20多倍,所以将此方法记录下来。算法时间复杂度为 log(n)。这个算法其实就是 数据结构与算法分析 (Weiss 著)一书中开头的那个递归求幂算法的非递归版,简洁明了。代码如下: // Finds x raised to the y-th exponent modulo MOD (即求 x. 阅读全文
摘要:
日志主要用于记录程序运行的情况,以便于程序在部署之后的排错调试等等!也有利于将这些信息进行持久化,否则信息便会丢失。很多时候,系统出现的异常都是碰巧的,很难再现的,所以需要实时监控,记录运行日志信息。介绍下日志工具:logging,log4j,commons-logging。logging是java自带的,在JDK中java.util.logging.*包是日志记录API。Log4j比JDK Logging更加成熟,是日志记录标准。commons-logging,是一个接口抽象,底层的实现可以自动替换:如果当前存在log4j,则使用log4j来实现否则,使用JDKlogging来实现否则,使用 阅读全文
摘要:
前面有一篇Say bye to CMake and Makefile我开始用自己编写的newlisp脚本替代CMake,今天对前面的进行改进。改进部分是:1. newlisp armory模块的引入和初始化 部分可以重用2. 将头文件所在目录,cpp或者cc文件所在目录以及依赖库名称等 作为配置单独抽出来,可以根据不同的项目进行配置现在看改过后的代码:rebuild.lsp是主要执行脚本#!/usr/bin/newlisp ;; init(load "/opt/armory_config.lsp")(load "build_config.lsp");; 阅读全文
摘要:
这篇文章参考自http://blog.sina.com.cn/s/blog_991afe570101rdgf.html,十分感谢原作者的伟大创造,本人亲测可行。 这篇文章记录一下如何在MAC系统环境下,搭建LUA脚本最好的编码环境,具有强大的代码补全,而且可以编译运行。这里使用到的还是sublime text编辑器。下面开始进行详细的介绍:(1)下载sublime text注意版本号为2.0.2,下载地址:sublime text 2下载地址 (2)安装lua环境(这里用到的是最新的版本:5.2.1)进入这个页面进行lua安装点击打开链接,在这个页面中,提示到有两种安装方式:①第一种是使用Ru 阅读全文