USACO section2.4 The Tamworth Two题解&代码
2015-02-15 06:53
666 查看
很简单的模拟…需要避免产生循环的情况,所以设置vis数组记录step
但是需要注意的是使用scanf(“%c”,&m[i][j])的话scanf会等到遇到第一个非可读字符的时候结束…
这样的话j就不是准确的了…
恩…看了15min才看出来…果然是该去休息了…
但是需要注意的是使用scanf(“%c”,&m[i][j])的话scanf会等到遇到第一个非可读字符的时候结束…
这样的话j就不是准确的了…
恩…看了15min才看出来…果然是该去休息了…
/* ID:rainbow16 LANG:C++ TASK:ttwo */ #include<stdio.h> char m[10][10]; bool vis[10][10][4][10][10][4]; int cx,cy,cf,fx,fy,ff; void dfs(int t) { if(cx==fx && cy==fy) { printf("%d\n",t); return; } if(vis[cx][cy][cf][fx][fy][ff]) { printf("0\n"); return; } vis[cx][cy][cf][fx][fy][ff]=1; switch(cf) { case 0: if(cx==0 || m[cx-1][cy]=='*') cf++; else cx--; break; case 1: if(cy==9 || m[cx][cy+1]=='*') cf++; else cy++; break; case 2: if(cx==9 || m[cx+1][cy]=='*') cf++; else cx++; break; case 3: if(cy==0 || m[cx][cy-1]=='*') cf=0; else cy--; break; } switch(ff) { case 0: if(fx==0 || m[fx-1][fy]=='*') ff++; else fx--; break; case 1: if(fy==9 || m[fx][fy+1]=='*') ff++; else fy++; break; case 2: if(fx==9 || m[fx+1][fy]=='*') ff++; else fx++; break; case 3: if(fy==0 || m[fx][fy-1]=='*') ff=0; else fy--; break; } dfs(t+1); } int main(void) { freopen("ttwo.in","r",stdin); freopen("ttwo.out","w",stdout); for(int i=0;i<10;i++) { scanf("%s",&m[i]); for(int j=0;j<10;j++) { if(m[i][j]=='C') { cx=i; cy=j; cf=0; m[i][j]='.'; } if(m[i][j]=='F') { fx=i; fy=j; ff=0; m[i][j]='.'; } } } dfs(0); return 0; }
相关文章推荐
- USACO section2.4 Cow Tours题解&代码
- USACO section 2.4 The Tamworth Two(算模拟吧)
- USACO-Section2.4 The Tamworth Two【模拟法】
- USACO Section 2.4: The Tamworth Two
- USACO - Chapter2 Section 2.4 - The Tamworth Two
- USACO-Section 2.4 The Tamworth Two(模拟)
- USACO section 2.4 The Tamworth Two(算模拟吧)
- USACO Section 2.4 The Tamworth Two
- USACO section2.3 Money Systems题解&代码
- [USACO2.4]两只塔姆沃斯牛 The Tamworth Two
- USACO section3.1 Humble Numbers题解&代码
- 【USACO 2.4】The Tamworth Two
- USACO--2.4The Tamworth Two
- USACO 2.4 The Tamworth Two<简单图问题>
- chapter 2 section 2.4 The Tamworth Two
- USACO section2.3 Cow Pedigrees题解&代码
- USACO section3.1 Agri-Net题解&代码
- USACO 2.4 The Tamworth Two ttwo
- USACO section2.3 Zero Sum题解&代码
- USACO 2.4 The Tamworth Two(乱搞)