摘要: 这题比较悲剧吧,始终只有80分,到最后才发现数组开销了一个1,应该是[101][51],我开的[101][50],然后。。。。80分咯~ 代码如下:#include <stdio.h>#include <stdlib.h>#define min(a, b) (((a)<(b))?(a):(b))int num[101];int f[101][51];int com(const void *a, const void *b){ return *(int *)a - *(int *)b;}int main(int argc, char **argv){ int i, 阅读全文
posted @ 2011-08-13 23:52 zqynux 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 就实现正向从1点出发SPFA,获得min[i],就是到达i点能最低购买到的价格,然后反向(将图反向),从n点开始SPFA,获得max[i],就是从i点到终点能够卖出的最大的价格,然后就是寻找差价最大的i,输出答案即可。#include <stdio.h>#include <stdlib.h>int num[100000];int map[1000000], next[1000000];int end;int head[100000];void add(int a, int b){ map[end] = b; next[end] = head[a]; head[a] = 阅读全文
posted @ 2011-08-13 23:50 zqynux 阅读(2507) 评论(0) 推荐(0) 编辑