摘要: View Code 1 /*--------------------------- 2 3 程序功能:比较七种排序算法的时间消耗 4 5 七种算法:1.冒泡排序、2.直接插入排序、3.简单选择排序、4.希尔排序、5.堆排序、6.归并排序、7.快速排序。 6 7 统一规约:1,排序为从小到大 升序排序 8 2,Max 表示排序数组的大小 9 3,rt 记录前一次运行算法的时间,求差的结果为当前排序时间 10 4,a[] 为排序数组, a2[] 为恢复数组,每... 阅读全文
posted @ 2012-09-04 21:11 pc.... 阅读(120) 评论(0) 推荐(0)
摘要: 1 //Dijkstra代码解释版本0.99 2 #include<iostream> 3 using namespace std; 4 5 const int maxn=1000+10; 6 const int INF=0x3fffffff; //因为dijkstra会有2个最大值相加的情况,所以用0x7fffffff会溢出 7 8 int map[maxn][maxn]; 9 int dis[maxn]; //dis[i]表示当前源点到i的最短距离10 11 ... 阅读全文
posted @ 2012-09-04 20:22 pc.... 阅读(220) 评论(0) 推荐(0)
摘要: 1 View Code 2 1 //SPFA 3 2 #include <iostream> 4 3 #include <queue> 5 4 using namespace std ; 6 5 7 6 const int maxn = 1000 + 10 ; 8 7 const int INF = 0x3ffffff; 9 8 int dis[maxn]; //dis[i],点i到源点的最短路径10 9 11 10 int map[maxn][maxn]; 12 11 int used[maxn]; //used[i],标记点... 阅读全文
posted @ 2012-09-04 20:20 pc.... 阅读(156) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2553题意: 给出个N,代表N*N表格,在里面放N个皇后,要保证每个皇后之间不会攻击到,皇后的攻击范围:自己所在的那一行,自己所在的那一列,自己所在的两条45度对角线。坑爹: 如果输入一个N就去搜一次的话,数据给出每一次的N都是10的话就会超时。解法: 反正这题N最大才10,就把1到10的结果先保存在数组中,然后每输入一次N就利用下表访问一次数组得到答案。View Code 1 #include<iostream> 2 using namespace std; 3 4 int N; 5 int c 阅读全文
posted @ 2012-09-04 20:15 pc.... 阅读(184) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1728题意: 一个迷宫...从起点走到终点,拐弯次数有限制的情况下找到最优的解。坑爹: 本来用结构体来记录坐标、走的步数和拐弯次数,但是发现如果搜一条路径发现行不通的话这条路上所有点都被标记了,当我再次经过这里面的某个点的时候就不能通过了。比如说我一开始行不通的那条路通过某个点是左右通过的,但我下次再要从上或者从下经过这个点的时候就会过不了。解法: 每次向一个方向拓展时将这一个方向所有满足条件的点全部进队,这样就解决了某个点不会因为之前被标记过而导致下一次以另外一个方向进入这个店的时候就不给经过的问题。... 阅读全文
posted @ 2012-09-04 20:07 pc.... 阅读(247) 评论(0) 推荐(0)
摘要: http://www.cnblogs.com/twjcnblog/archive/2011/09/07/2170306.html 阅读全文
posted @ 2012-09-04 19:49 pc.... 阅读(106) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1253题意: 一个三维的空间坐标分别表示为(x,y,z),Ignatius要从(0,0,0)开始逃,要到出口(A-1,B-1,C-1),他只能往6个方向走(上下左右前后),每走一步算一个单位时间,要在魔王回来的时候内走到出口(刚好也算逃出)。坑爹: 这题的数据很恶心,害我WA了很多次,当A==B==C==1的时候也就是入口就是出口的时候,要分入口(出口)是不是墙,如果是则不能逃出,反之可以逃出,解法: 广搜。View Code 1 #include<iostream> 2 #include< 阅读全文
posted @ 2012-09-04 17:29 pc.... 阅读(246) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1690题意: 第一行数据分别为L1.L2.L3.L4.C1.C2.C3.C4,和坐出租车的意思是差不多的,在行驶了0到L1距离的时候价格为C1,L1到L2之间的时候用C2 ......第二行N和M代表在下面有N个站(坐标),M个问题。计算出一个站到另一个站所需的最少的钱。Sample:1 2 3 4 1 3 5 74 212341 44 11到4直接不换乘的话需要5元,但在1-2,2-3,3-4这样换乘的话只用3元。坑爹: 数据比较大,要用__int64,我把INF值直接改成了-1这样虽然多了几条语句但思.. 阅读全文
posted @ 2012-09-04 17:11 pc.... 阅读(194) 评论(0) 推荐(1)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1385题意: 输入一个N*N的矩阵,(x,y)代表城市x到城市y所花费的钱,后面有一行b1,b2......bn代表经过城市n所需的费用,后面是几组问题(a,b)也就是要你计算出a到b的最少花费的费用(a、b不收费),并且要输出路径。坑爹: 要求输出最小的那一组解 ,也就是说当 1-2-3-4 和1-5-3-4花费的费用是相同的时候要输出1-2-3-4。解法: 路径用一个path数组,初始化将path[i][j] = j ,在Floyd中只要满足map[i][j] > map[i][k] + map[k 阅读全文
posted @ 2012-09-04 16:10 pc.... 阅读(169) 评论(0) 推荐(0)