摘要: 标签/注释: 支持中文。 支持非代码段的标签/注释的备份和恢复。 支持删除当前模块非代码段的注释。 文件格式: L/C address name 如: L 40227F a label 这是一个标签 C 40227F a commnet 这是一个注释 int3断点: 支持备份“条件记录断点”的信息和该断点处的注释: 支持删除所有断点。(dll中的断点在重启后会恢复,必须删除对应的udd文件。od的bug?) 文件格式: B "fn" A/R address E/D passcount comment S condition S expression S explanatio 阅读全文
posted @ 2011-04-02 00:02 flyinghearts 阅读(1034) 评论(0) 推荐(0) 编辑
摘要: C++0x中的x总算不再是一个未知数了。不知道D语言什么时候才能流行起来。gcc 4.6已经发布了,tdm-gcc 4.5.2才发布,4.6版还要再等几个月。4.5.2测试了好几个月,也正因为等这个正式版,这个修改器现在才发出来。 过年期间,本打算写个修改器替换35剧本中的一些数据,写完后,心想既然知道了大致的数据结构,何不操作下数据。 更改上场年份”和“添加待命的新武将”都是将数据块移动下。但是更改“所在地”、“身份”,实在是太烦人了,要 实现几种链表操作,要考虑很多种情况,某些情况还要移动数据,而且改了其中一个数据后,还要考虑对其它数据产生影响。 最终只是粗略地实现了一部份功能。感觉花在. 阅读全文
posted @ 2011-04-01 23:46 flyinghearts 阅读(4756) 评论(0) 推荐(0) 编辑
摘要: 从字符串中提取数字并排序输出看到别人的讨论贴,也做了下。题目很简单,可以直接用标准库函数,也可以自已造轮子。标准库中能用到的只有:atoi / strtol系列,显然得用 strtol(有些库atoi就是用strtol实现的)在用strtol前,先要对不安全的strtol封装下。int str2i(const char str[], const char* &next, int base = 10){ return strtol(str, const_cast<char**>(&next), base);}可采用两种算法: 1 先忽略空白字符,然后直接调用str2i 阅读全文
posted @ 2011-03-31 23:23 flyinghearts 阅读(1871) 评论(0) 推荐(0) 编辑
摘要: //用点树模拟约瑟夫问题//N个人编号:0,1,2,...N-1,报数:1到M,报到M的出列//www.cnblogs.com/flyinghearts#include<cstdio>template<intN>structRound2k{enum{down=Round2k<N/2u>::down*2,up=down==N?down:2*down};};template<>structRound2k<1>{enum{down=1,up=1};};template<intM,typenameT=int>//区间[0,M)cl 阅读全文
posted @ 2011-03-31 23:19 flyinghearts 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 思路: 先画一棵完全二叉树, 为节省空间,采用数组来实现。对这棵二叉树,叶子用于存放数据,节点用于统计叶子信息。通过下面的三种方法,进一步节省空间:1 节点只记录左子树叶子信息,右子树叶子信息通过当前节点和父节点等节点的值计算得出。 因而需要指定一个点,当作根节点的“父节点”,以便计算根节点右子树信息。 可以将根节点从1开始编号,对节点i,左孩子编号为2*i,右孩子编号为2*i+1,并用编号0记录整根树所有叶子的信息。2 对某些应用,叶子信息可以通过节点信息计算得出,因而不保存叶子信息,3 完全二叉树,边界要求为2^k,为了表示[0, n)这n个点,需要将n增加到2^k,实际上, 只要第n个叶 阅读全文
posted @ 2011-03-31 23:13 flyinghearts 阅读(1479) 评论(0) 推荐(0) 编辑
摘要: 《编程之美》读书笔记25: 2.21只考加法的面试题我们知道:1+2 = 3;4+5 = 9;2+3+4 = 9。等式的左边都是两个或两个以上连续的自然数相加,是不是所有的整数都可以写成这样的形式呢?问题1: 对于一个64位正整数,输出它所有可能的连续自然数(两个以上)之和的算式。问题2: 大家在测试上面程序的过程中,肯定会注意到有一些数字不能表达为一系列连续的自然数之和,例如32好像就找不到。那么,这样的数字有什么规律呢?能否证明你的结论?问题3: 在64位正整数范围内,子序列数目最多的数是哪一个?假设自然数n可以拆分成:m, m+1, …, m+k-1 (m >= 1, k > 阅读全文
posted @ 2011-03-27 23:08 flyinghearts 阅读(3376) 评论(1) 推荐(0) 编辑
摘要: 《编程之美》读书笔记24: 3.5 最短摘要的生成 当初看这道题时,看了好了几遍都没看懂。后来总算弄明白:给出的字符串是用其它程序分好词的,关键字符串也是用其它程序分好词的,而不是按用户直接输入的字符串。比如书上给的例子:“微软亚洲研究院使命”,不是按空格分成两个关键词,“微软亚洲研究院”和“使命”,而是按其它程序分成:“微软”、“亚洲”、“研究院”和“使命”四个关键词。 “最短摘要”应该是指:包含所有关键字(关键字不要求按用户输入的顺序排列)的长度最短的摘要。书上的解法,把“最短摘要”理解成包含所有关键字且词个数最少的摘要。 弄清了问题,解决起来就很简单: 1 反复读入字符串,直到碰到关键. 阅读全文
posted @ 2011-03-24 23:27 flyinghearts 阅读(3755) 评论(0) 推荐(0) 编辑
摘要: 输出和为n的所有的连续自然数序列 如 n = 9: 9 4 5 2 3 4 《编程之美》的题目(2.21只考加法的面试题),去年曾经写过本题的代码,后来不知道把代码放哪里了。按以前的思路,重写了下代码,写完后翻了下书,结果发现与书上要求的还不一样。 假设,拆分成的数列为:m, m+1, … m+k-1 则 n = (m + m + k - 1) * k / 2或 2*n = (2*m + k - 1) * k 显然就是求2*n的所有因子,最简单的方法就是暴力搜索: 对公式2*n = (2*m + k - 1) * k 进行转变,可得下面几种方法: 方法一: 2*m + k – 1 = 2 *. 阅读全文
posted @ 2011-03-22 23:39 flyinghearts 阅读(2867) 评论(0) 推荐(2) 编辑
摘要: 问题: 输出自然数n的所有因子假设 n = i * j(i <= j) , k = j – i >= 0 思路一: j = n / i>=i( 注意:i – int(n / i) 随着i的增大而增大,int(n/i)指n/i的整数部份)从i = 1 开始判断 i 是否能被n整除,当int(n / i) < i 时终止思路二:n = i * (i + k)=>k = (n – i * i) / i>= 0=> k = m / i >= 0 (设m = n – i * i)从i = 1 开始判断 i 是否能被m整除,当m < 0(即k < 阅读全文
posted @ 2011-03-22 23:37 flyinghearts 阅读(2844) 评论(0) 推荐(0) 编辑
摘要: 问题:求1到n这n个整数间的异或值,即 1 xor 2 xor 3 ... xor n 记 f(x, y) 为x到y的所有整数的异或值。 对 f(2^k, 2^(k+1) -1) (注意文章中的 ^ 表示的是“幂”,xor 表示“异或”,or 表示“或”): 2^k 到 2^(k+1) -1 这2^k个数,最高位(+k位)的1个数为2^k, 若 k >= 1,则2^k为偶数,将这2^k个数的最高位(+k位)去掉,异或值不变。 因而 f(2^k, 2^(k+1) -1) = f(2^k - 2^k, 2^(k+1) -1 -2^k) = f(0, 2^k -1) 因而 f(0, 2^(k+ 阅读全文
posted @ 2011-03-22 23:36 flyinghearts 阅读(5698) 评论(0) 推荐(3) 编辑