随笔分类 - 搜索
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1016#include#include#includeint n;int flag[20];int a[45],num[20];void dfs(int x,int y){ int i; num[x]=y; flag[y]=1; if(x==n) { if(a[num[x]+num[1]]==0) { printf("1"); for(i=2;i<=n;i++) printf(" %d",num[i]); printf("\n"); } ...
阅读全文
摘要:方法:dfs思想:由于本题中规定只有在固定时刻到达目的点才能逃脱,不能提早,更不能延迟,故不能用bfs。可以用dfs找出所有情况,若有可行解,直接返回即可。本题比较郁闷的是,在tzc上将方向数组int dir[4][2]稍微变动两下,就会超时。这也是今后出现TLE时该考虑的重要的一点吧,可以作为经验教训。#include#includechar map[11][11];int dir[4][2]={{0,-1},{0,1},{1,0},{-1,0}};int t;int flag;int n,m;int dx,dy;void dfs(int i,int j,int step){ int x,y
阅读全文