中缀表达式转换后缀表达式
能够把中缀表达式转换成后缀表达式,是在为http://www.rqnoj.cn/Problem_18.html 这一题做准备,感觉写的还不错,关键是在优先级的处理方面(compare函数),整个代码如下(包含驱动函数main):
只支持+-*^()和变量
#include <stdio.h&g[......]
能够把中缀表达式转换成后缀表达式,是在为http://www.rqnoj.cn/Problem_18.html 这一题做准备,感觉写的还不错,关键是在优先级的处理方面(compare函数),整个代码如下(包含驱动函数main):
只支持+-*^()和变量
#include <stdio.h&g[......]
欧拉回路,我知道怎么做,但是我不知到为什么可以这么做!,囧囧;就当是背课文把,反正这就是欧拉回路。
如果有节点的度为奇数就从它开始,否则就从最小的开始,然后就是看下面的代码把:
#include <stdio.h>
#define MAXV 500
#define MAXE 1024[......]
插入排序其实很好理解,就是保证前i – 1个都是排好序了的,再排第i个,下面这个是从大到小排序的:
/* 从大到小的插入排序 */
void insert_sort(int a[], int n)
{
int i, j;
int key;
for(i = 1; i < n; i++){[......]
刚看到题目,我不知所措,真不知道怎么做(NOIP我真的是太菜了。)。
到网上找到了一个高手的结题报告(几个题目我都是搜到的他的。),原来可以用DP来解大致的思路是这样子的:
比如这里有一个循环(只是假设,可能没有这个数):123 245 344 123,这就是一个循环数,没错吧?,好,再仔细观察一下[……]
这函数真够长的,吓死!
记得我前两天看到别人做的一个程序,用的是自己写的快速排序,而我用的qosrt,结果我的100ms,他的350ms。这程序真贼快的
因为我把每天的倾城都安排好了,所以只有半个小时的时间看,所以没看完,先注释一部分吧,明天再补一部分,估计一下子还看不完。整个qsort的代码如下:[……]
这题我不怎么说吧,我在网上搜的,到现在为止为什么能这样我还是没想通,只知道这样能过。
就当是个定理吧,记住就是了,这题我不太想解释,看代码吧:
#include <stdio.h>
#define INT_MAX 200000000
int stone[100];
int map[919[......]
Glibc的效率真的快!快到让我想不到!!!
这个memset跑的贼快~!不过我还是没想通,为什么不用汇编呢?sep movw,速度可能更快!
对memset的注释如下:
C语言: [Codee#12483](http://fayaa.com/code/view/12483/)
void *mem[......]
这题一开始我用的那个O(n^3)的算法,叫什么名字我忘了,肯定是超时了咯,因为图是稀疏图,这样是肯定超时的,后来就看标称,看了好久,真没想到标称竟然如此精妙,里面设计了一个能够以O(1)的速度查找元素的功能,整个程序是执行了至多n次Dijkstra算法,然后我在里面增加了一些优化(几乎和时间无关的优[……]
这题困扰了我好几天,详细看了别人的题解,自己反复琢磨,终于琢磨透了。
把我的思路讲一下,f[i][j] 表示第i位(从右向左数, 如12中的1是第二位),则很容易得到一个DP:
f[i][j] = f[i – 1][j + 1] + f[i – 1][j + 2] + f[i – 1][j + 3][……]