2012年4月15日

巴塞罗那VS皇家马德里

摘要: 下周日,西甲联赛第35轮,巴塞罗那主场迎战皇家马德里。不知是不是天意,梅西在第34轮对阵莱万特时攻进两球,追平了C罗,两人在西甲联赛都进了41球。而且巴塞罗那目前落后皇马4分,如果他们主场取胜,则只落后1分,西甲冠军的归属就会更加激烈。从目前形势来看,皇马和巴萨将在2012年5月19号的安联球场会师欧冠决赛。C罗的长途奔袭、落叶球、远射、头球,梅西眼花缭乱的过人、横切抽射、挑射,希望能看到C罗和梅西的又一次天王对决!还有他们各自的队友,卡卡、迪马利亚、伊瓜因、哈维、伊涅斯塔、法布雷加斯...这是几天前的一张图: 阅读全文

posted @ 2012-04-15 23:05 NULL00 阅读(789) 评论(6) 推荐(0) 编辑

2012年4月13日

数学等式之美!

摘要: 今天看到了一个有趣的等式如下: 1 x 8 + 1 = 9 12 x 8 + 2 = 98 123 x 8 + 3 = 987 1234 x 8 + 4 = 9876 12345 x 8 + 5 = 98765 123456 x 8 + 6 = 987654 1234567 x 8 + 7 = 9876543 12345678 x 8 + 8 = 98765432 123456789 x 8 + 9 = 987654321然后在网上搜,顺便找到了另外一些有趣的等式:1 x 9 + 2 = 11 12 x 9 + 3 = 111 123 x 9 + 4 = 1111 1234 x 9 + 5 = 阅读全文

posted @ 2012-04-13 23:58 NULL00 阅读(816) 评论(0) 推荐(1) 编辑

POJ 1001 Exponentiation

摘要: DescriptionProblems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many computer systems. This problem requires that you write a program to compute the exact value of Rn where R 阅读全文

posted @ 2012-04-13 16:29 NULL00 阅读(1393) 评论(0) 推荐(0) 编辑

2011年6月15日

求从n个数组任意选取一个元素的所有组合

摘要: 求从n个数组任意选取一个元素的所有组合,对于这个问题,我们在直观上感觉很容易,但是用程序实现时则发现用for循环解决不了问题,因为n是随意的。在这里,我们用递归的思想,对于数据[1, 3, 4]; [2, 5]; [6, 7];我们可以1.将1,2,6压入栈中,然后输出栈中所有元素,之后弹出62.压入7,输出栈中所有元素,之后弹出73.弹出2,压入5,再压入6,然后输出栈中所有元素,之后弹出64.压入7,输出栈中所有元素,之后弹出7以此类推,即可得到所有组合。具体程序实现如下:#include <iostream>#include <vector>#include &l 阅读全文

posted @ 2011-06-15 15:39 NULL00 阅读(5846) 评论(1) 推荐(2) 编辑

2011年5月29日

变长参数表

摘要: 以实现函数printf的一个最简单版本为例,介绍如何以可移植的方式编写可处理变长参数表的函数。因为我们的重点在于参数的处理,所以,函数minprintf只处理格式字符串和参数,格式转换则通过调用函数printf实现。 函数printf的正确声明形式为:int printf(char* fmt, ...) 其中,省略号表示参数表中参数的数量和类型是可变的。省略号只能出现在参数表的尾部。因为minprintf函数不需要想printf函数一样返回实际输出的字符数,因此,我们将它声明为下列形式:void minprintf(char* fmt, ...) 编写函数minprintf的关键在于如何处理. 阅读全文

posted @ 2011-05-29 23:46 NULL00 阅读(859) 评论(0) 推荐(0) 编辑

编程珠玑-位排序(bitsort)

摘要: 在《编程珠玑》一书上,有一题是将一堆不重复的数进行排序,这些数的值大小位于[0, 10000000).然后作者在书后给出的答案确实很精辟,利用位排序将这个问题轻而易举的解决了。 首先弄懂i>>SHIFT相当于i/32,i&MASK相当于i%32. 题目中说了 Replace above 2 line 阅读全文

posted @ 2011-05-29 01:36 NULL00 阅读(4461) 评论(4) 推荐(1) 编辑

2011年5月27日

最长公共子序列(LCS)

摘要: 对于最长公共子序列(LCS),是典型的动态规划问题,对于这个问题,可以用如下思路来解答。如:X{x1, x2, x3, ... },Y{y1, y2, y3, ...};1.当x1 = y1时,则此时已找到一个相同的值,故接下来只需求{x2, x3, x4, ...}和{y2, y3, y4, ...}的LCS。2.当x1 != y1时,则此时X和Y的LCS是下面两个LCS的最大值: {x2, x3, x4, ...}和{y1, y2, y3, y4, ...}的LCS, 或者{x1, x2, x3, x4, ...}和{y2, y3, y4, ...}的LCS。由上面可以看出这是一个递归问题 阅读全文

posted @ 2011-05-27 21:24 NULL00 阅读(1953) 评论(3) 推荐(1) 编辑

2011年5月18日

关于Ubuntu中google chrome浏览器字体的设置

摘要: 我的系统是Ubuntu9.10,在安装google chrome浏览器后,发现其默认字体为楷体,看着很模糊,很不爽。在这里,我的解决方法是: 首先获得root权限,然后进入/opt/google/chrome/locales这个文件夹,在这个文件夹内有一个zh-CN.pak,直接删除之,然后重新启动chrome即可。 如果你担心解决不了的话,建议先将zh-CN.pak备份一下。 阅读全文

posted @ 2011-05-18 23:41 NULL00 阅读(1970) 评论(0) 推荐(0) 编辑

2011年5月13日

删除单链表中偶数节点

摘要: 题目意思就是:删除链表中第2个节点,第4个节点......,即删除所有第偶数个节点#include <stdio.h>#include <stdlib.h>#define LEN 8typedef struct node node_t;struct node{ int val; node_t *next; }; //delete even nodevoid delete_even_node(node_t* head);int main(){ node_t** arr = (node_t**)malloc(sizeof(node_t*)*LEN); arr[0] = (n 阅读全文

posted @ 2011-05-13 15:12 NULL00 阅读(5234) 评论(0) 推荐(0) 编辑

2011年5月9日

单链表反转

摘要: void reverse(List* list){ Node* before = list->first; if (before != NULL) { Node* after = before->next; before->next = NULL; while (after) { //交换指针 Node* temp = after->next; after->next = before; before = after; after = temp; } }} 阅读全文

posted @ 2011-05-09 21:43 NULL00 阅读(454) 评论(0) 推荐(0) 编辑

非递归实现fibonacci数列

摘要: 下面用两个方法实现fibonacci数列,一个是递归的,一个是非递归的,由于递归需要不断的开辟新的栈,并释放开辟的栈,因而更耗时,但是在理解上却容易些。#include <iostream>#include <time.h>using namespace std;int recursive_method(int n);int non_recursive_method(int n);int main(){ clock_t t3 = clock(); printf("%d\n", non_recursive_method(40)); clock_t t4 阅读全文

posted @ 2011-05-09 21:34 NULL00 阅读(2762) 评论(0) 推荐(0) 编辑

2011年5月8日

shell(希尔)排序

摘要: shell(希尔)排序是一种改进的插入排序(链接),如对数组{4, 7, 2, 8, 5, 1, 3, 6},取距离增量为d = 8/2 = 4,形式上将数组分为了4组,4 7 2 85 1 3 6每一列为一组,组内排序后为4 1 2 65 7 3 8,即排序后的数组为{4 1 2 6 5 7 3 8},再取距离增量为d = 4/2 = 2,则可分为2组,每一列为一组4 12 65 73 8,组内排序后为2 13 64 75 8排序后的数组为{2 1 3 6 4 7 5 8},然后采用插入排序即可。下面的shell_sort函数为<<C programming language&g 阅读全文

posted @ 2011-05-08 23:34 NULL00 阅读(303) 评论(0) 推荐(0) 编辑

2011年5月7日

找出输入区间内的回文质数

摘要: 假设输入区间为[a, b],a>0,则回文质数满足以下条件:1.为质数(废话)2.必须为回文数(正着看倒着看是一样),但这个回文数的位数必须为奇数位(11除外),为什么呢? 因为位数为偶数的回文数必然是11的倍数,即它不是质数,具体证明如下: 对于数字abcd,abcd = 1000*a + 100*b + 10*c + d = (1100*a - 110*a + 11*a - a) + (110*b - 11*b + b) + (11*c - c) + d = (1100*a - 110*a + 11*a) + (110*b - 11*b) + 11*c + (b + d - a - 阅读全文

posted @ 2011-05-07 21:30 NULL00 阅读(1179) 评论(0) 推荐(0) 编辑

2011年5月4日

算法导论13-1节习题解答

摘要: CLRS 13.1-1利用性质画图,略CLRS13.1-2是否CLRS13.1-3是,因为就根部被改变了,并不与其他性质矛盾。CLRS13.1-44,两个子结点都为红色3,两个子结点一红一黑2,两个子结点都为黑树的叶子的深度将会都一样,因为路径上都是黑结点了。CLRS13.1-5略CLRS13.1-6当路径上一半黑一半红时,为最多,2^(2k) - 1个,当路径上全是黑时,为最少,2^k - 1个。CLRS13.1-7最大比值为1,即根部为黑结点,两个孩子为红,然后就是NIL结点(为黑)。最小比值为0,这时全是黑结点。 阅读全文

posted @ 2011-05-04 17:30 NULL00 阅读(1637) 评论(3) 推荐(0) 编辑

KMP算法源码实现

摘要: 对于KMP算法的讲解,Matrix67在这里给出了很详细的解释,我在这里只是实现了相关源码而已,以作备用。#include <iostream>using namespace std;const int* get_substring_arr(const char* sequence);void kmp(const char* src, const char* substring, const int* a);int main(){ char* src = "acabaabaabcacaabc"; char* substring = "abaabcac& 阅读全文

posted @ 2011-05-04 14:53 NULL00 阅读(1380) 评论(0) 推荐(0) 编辑

导航