03 2012 档案

Astar算法
摘要:A Star算法是一智能找最短路径算法(下面简称A算法), 与 Dijkstra算法相比,A算法访问的节点比较少,因此可以缩短搜索时间。他的算法思想是:这里有公式f 最终路径长度f = 起点到该点的已知长度h + 该点到终点的估计长度g。 O表(open): 待处理的节点表。 C表(close): 已处理过的节点表。算法流程:1. 从起点开始,起点的f = 1 + g, 1表示此节点已走过的路径是1,g是此节点到终点的估计距离, 放入链表O中。可以假设g值的计算使用勾股定理公式来计算此点到终点的直线距离。2. 当O不为空时,从中取出一个最小f值的节点x。3.如果x等于终点,找到路径,算法结束. 阅读全文

posted @ 2012-03-20 23:01 andy_ 阅读(3200) 评论(3) 推荐(0)

康托展开
摘要:来自 http://archive.cnblogs.com/a/2026276/在上一篇的方法一里,我们使用把数组的下标每次增加1的方法得到重复的全排列,然后再挑出不重复的全排列。如下图所示,绿颜色表示想要得到的结果。0 0 00 0 10 0 20 1 00 1 10 1 20 2 00 2 10 2 21 0 01 0 11 0 21 1 01 1 11 1 21 2 01 2 11 2 22 0 02 0 12 0 22 1 02 1 12 1 22 2 02 2 12 2 2 这种方法虽然简单,但是效率比较差。要生成n个元素的全排列需要遍历 nn 次才能得到 n! 个解(看上面那个绿. 阅读全文

posted @ 2012-03-20 22:01 andy_ 阅读(283) 评论(0) 推荐(0)

POJ3669 Meteor Shower BFS
摘要:#include<iostream> #include<queue> using namespace std; #define MAXN 302 struct point{ int x,y; }; int dir[4][2]={{-1,0},{0,1},{1,0},{0,-1}}; int map[MAXN][MAXN]; bool visted[MAXN][MAXN]; int steps; void bfs() { queue<point> Q; point p1={0,0},p2; int i; ... 阅读全文

posted @ 2012-03-19 23:58 andy_ 阅读(225) 评论(0) 推荐(0)

poj3670 eating together 简单的dp
摘要:方法一:LIS/LDS#include"stdio.h" int lis[30001],lds[30001]; int main() { int n,t,len1=0,len2=0,i,left,right,mid; lds[0]=0x7fffffff; lis[0]=-1; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&t); if(t>=lis[le... 阅读全文

posted @ 2012-03-06 17:02 andy_ 阅读(233) 评论(0) 推荐(0)

导航