9月27号ACM总结
这个星期我学习了小黑书上递归全排列,BFS与DFS的有关内容,感觉自己的进度有点慢,希望可以早日结束黑书的内容。
在java老师布置的作业中我运用了全排列,因为java中没有(next_permutation)函数。
public static int num=0;
public static void swap(int[] p,int x,int y)
{int temp;
temp=p[x];
p[x]=p[y];
p[y]=temp;
}
public static void Perm(int [] l,int begin,int end,int q)
{int i;
if(begin==end)//**若为m个数中排n个数,此处end应为n的值**
{for(int r=0;r<q;r++)
{System.out.print(l[r]);}
System.out.println();
num++;
}
else
{for(i=begin;i<=end;i++)
{
swap(l,i,begin);
Perm(l,begin+1,end,q);
swap(l,i,begin);
}
}
还掌握了BFS与DFS的思想与区别,DFS与贪心的结合(像DFS与曼哈顿距离的结合)按点(左上右下的方法)遍历
int v[4][2]={
{-1,0},{0,1},{0,-1},{1,0} };
for(int q=0;q<4;q++)
{next.x=start.x+v[q][0];next.y=start.y+v[q][1];}