中缀表达式转换后缀表达式
能够把中缀表达式转换成后缀表达式,是在为http://www.rqnoj.cn/Problem_18.html 这一题做准备,感觉写的还不错,关键是在优先级的处理方面(compare函数),整个代码如下(包含驱动函数main):
只支持+-*^()和变量
#include <stdio.h>
#include <ctype.h>
#define MAX 101
#define NUM 0
#define CHAR 1
#define OPER 2
#define STR +-*^()
con[......]
USACO 3.3-1 Riding the Fences骑马修栅栏
欧拉回路,我知道怎么做,但是我不知到为什么可以这么做!,囧囧;就当是背课文把,反正这就是欧拉回路。
如果有节点的度为奇数就从它开始,否则就从最小的开始,然后就是看下面的代码把:
#include <stdio.h>
#define MAXV 500
#define MAXE 1024
char map[MAXV][MAXV];
int path[MAXE];
int degree[MAXV];
int len;
int max;
void add(int a, int b)
{
map[a][b][......]
算法导论 习题之插入排序从大到小
插入排序其实很好理解,就是保证前i – 1个都是排好序了的,再排第i个,下面这个是从大到小排序的:
/* 从大到小的插入排序 */
void insert_sort(int a[], int n)
{
int i, j;
int key;
for(i = 1; i < n; i++){
key = a[i];
for(j = i - 1; (j >= 0) && (key > a[j]); j--){
a[j + 1] = a[j];
}
a[j + 1] = k[......]
Vim 和 Emacs, 我的选择
既然是一个程序员就要像一个程序员,总需要有一款顺手,熟练地软件让自己使用吧,说到软件,编译和调试方面gcc和gdb无可替代,但是在编辑方面,有两把等待我霸气的剑,每一把身上都是波光粼粼,荣誉陪伴着的!我不知道选哪个——vim, emacs,其实我用vim有一阵子了,但是我还是不够熟练,所以现在换的话还算来得及。
到网上搜了好久,最后两篇帖子给了我决定,一篇是一个人从vim转到emacs里去的文章,他说他学Vim很久了,后来却爱上了Emacs。他说他如果没有.emacs那Vim和Emacs是差不多的,但是他有了[……]
NOIP2005 循环 解题报告
刚看到题目,我不知所措,真不知道怎么做(NOIP我真的是太菜了。)。
到网上找到了一个高手的结题报告(几个题目我都是搜到的他的。),原来可以用DP来解大致的思路是这样子的:
比如这里有一个循环(只是假设,可能没有这个数):123 245 344 123,这就是一个循环数,没错吧?,好,再仔细观察一下,第一项和最后一项的后二位数也是相同的,也就是说后k个数循环的长度是后k-1个数循环长度的倍数。
恩,至于代码的话,等下再发上来
(2010年8月4日18:26:10),这一题希望能成为我的OI转折题,没什么别的,这题我[……]
Glibc 中的 qsort
这函数真够长的,吓死!
记得我前两天看到别人做的一个程序,用的是自己写的快速排序,而我用的qosrt,结果我的100ms,他的350ms。这程序真贼快的
因为我把每天的倾城都安排好了,所以只有半个小时的时间看,所以没看完,先注释一部分吧,明天再补一部分,估计一下子还看不完。整个qsort的代码如下:
#include <alloca.h>
#include <limits.h>
#include <stdlib.h>
#include <string.h>
/*[......]
NOIP 过河 解题报告
这题我不怎么说吧,我在网上搜的,到现在为止为什么能这样我还是没想通,只知道这样能过。
就当是个定理吧,记住就是了,这题我不太想解释,看代码吧:
#include <stdio.h>
#define INT_MAX 200000000
int stone[100];
int map[9190], f[9190];
int com(const void *a, const void *b){ return *(int *)a - *(int *)b; }
int main(void)
{
int i,[......]